性能测试项目实战

背景

 描述具体是干什么,干这件事的前因后果。

性能测试过程

测试前期准备

干这件事需要有哪些准备工作,每个任务对应的负责人以及工作的开始和结束时间。

测试工具引入

基于梳理的业务场景,和服务底层稳定性体系的保障

性能测试计划

背景

描述具体是干什么,干这件事的前因后果。

前置工作

干这件事需要有哪些准备工作。

人员配备

每个任务对应的负责人以及工作的开始和结束时间。

技术(工具)选择

列举出自己选择的工具,以及选择相应工具的理由。

测试范围

就是具体的工作内容

测试风险

是否存在其它依赖项,基于客观事实,客观评估此次性能测试是否存在风险。

测试设计与开发

JMeter⼯具
测试并发登录

 

产品列表加载

测试最简单的方式:

1、测试只有一条列表数据时列表加载的响应时间。

2、测试添加多条数据时数据列表加载的时间。

同时⽀持执⾏API测试⽤例
上传⽂件最⼤⽀持2G

测试方式是:

1、上传一个2G文件的时间是多少?(使用JVM监控CPU和内存)

2、支持同一时间上传多少个的2G文件,最快上传的文件用时多少,最慢上传的文件用时多少?

3、一个人上传大小不同的文件,上传文件的大小为多少时出现内存泄漏?

4、多少个人同时上传多大的文件会出现内存泄漏

5、测试超过2G的文件大小的上传情况。

6、测试文件大小为1G的上传情况。

locust开发

 ⽀持持续的发送API请求

import time
from locust import HttpUser,task,between

class QuickStartUser(HttpUser):
  host = 'http://47.95.142.233:8000'
  min_wait = 3000
  max_wait = 6000

  def login(self):
     r=self.client.post(
        url='/login/auth/',
        json={"username":"13484545195","password":"asd888"})
     return r.json()['token']

  @task
  def api(self):
     r=self.client.post(
        url='/interface/run/api/32',
        headers={'Authorization':'JWT {token}'.format(token=self.login())})
     assert r.status_code==200

 

测试执⾏与管理

性能关注指标

1、上传文件场景

1)时间

2)CPU与内存的变化趋势

2、常规场景

1)系统资源:CPU与内存

2)响应时间:最小,最大,平均,中位数,90%,95%,99%

3)吞吐量

4)IOPS,连接数

5)JVM的资源变化趋势关注

3、一码通场景

结合边界值分析法,需要测试的数据量为100万 90万 150万

1)系统资源:CPU与内存

2)响应时间:最小,最大,平均,中位数,90%,95%,99%

3)吞吐量

4)IOPS,连接数

测试报告(分析)

参与人员

参与的测试人员及测试版本

报告汇总
测试目标

测试结论:结果是否符合预期。

过程数据

错误汇总(记录错误类型和错误日志)

测试风险

基于测试结果,给出的测试风险。

测试结论

总体测试结论的汇总:性能测试目标以及是否通过。

测试风险

基于测试结果,给出的测试风险。

测试结论

总体测试结论的汇总:性能测试目标以及是否通过。