性能测试(六)-项目实战
项目实战
一、背景
介绍测试该产品的基于什么样的背景。以风暴平台为例:
二、性能测试过程
1、测试前期准备(前置工作)
2、测试工具引入
3、测试计划
3-1、
3-2、前置工作:干这件事需要有哪些准备工。
3-3、技术选择(工具):
其实,会发现,测试前期准备和技术选择(工具)在测试计划里已经涵盖。
3-4、测试范围:就是具体的工作内容,注意边界值的考虑。
3-5、测试风险:有什么依赖的项目,必须是客观存在的风险,不是主观臆想。
4、测试设计与开发
使用选择好的工具/代码,来设计场景/编写代码来测试设计好的性能测试用例。
4-1、JMeter工具
模拟1000个用户,Ramp-Up:10s
模拟1000个用户,Ramp-Up:20s,持续时间40s,启动延迟:2s
上传文件最大支持2G ,测试方式是?
性能测试关注指标: a、时间 b、CPU与内存的变化趋势
首先,模拟单个用户,假设上传大小为2G的文件,是否是可接受等待的时间,同时通过监测器监测后台的CPU,资源负载等情况。
其次,模拟多个用户,在同一时间段内,同时上传相同大小的文件,最快上传的时间和最慢上传的时间,是否是可接受等待的时间,同时通过监测器监测后台的CPU,资源负载等情况。
通过设置不同的区间范围,小于2G、等于2G、大于2G,找到临界值,来测试合理的上传文件大小支持。
4-2、locust工具
支持持续的发送API请求:post
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
5、测试执行与管理
a、多次测试执行,收集每次性能测试的数据(系统资源:CPU和内存、数据库资源:连接数和IOPS、JVM资源:内存资源 、响应时间:最大、最小、平均,中位数、90%、95%、99%、吞吐量)
b、数据收集后的数据可视化展示。
6、测试报告(分析)
6-1、参与人员
6-2、过程数据
6-3、错误汇总
6-4、测试风险
6-5、测试结论 :依据上述的各个结果,整体测试结论具体汇总如下: