性能脚本设计
目标
- 性能脚本设计技巧
1. 为什么要设计性能脚本?
1.1 需求
100虚拟用户对(查询学院-所有)接口测试,以每秒启动10个用户,统计服务器平均响应时间和错误率
1.2 问题
100虚拟用户请求服务器的时候,如何统计服务器响应时间和错误率?
2. 什么是性能脚本?
概念:借助测试工具模拟多种业务需求操作对系统的各项性能指标进行测试的脚本
2.1 解决方案分析
1. 测试计划->线程组
2. 线程组->HTTP请求(查询学院-所有)
3. 测试计划->查看结果树
4. 测试计划->聚合报告
2.2 技术难点分析
1. 线程组-线程数
2. 测试计划-聚合报告(各指标意义)
2.3 聚合报告使用图
1. Label:在不勾选"Include group name in label?"复选框的情况下,为请求取样器的名称,
否则为“请求取样器所在线程组:请求取样器名称”
2. Samples:用同一个请求取样器,发送请求的数量(注意:该值是不断累计的)。
比如,10个线程数设置为10,迭代10次,那么每运行一次测试,该值就增加10*10=100
3. Average:请求的平均响应时间
4. Median:中位数。50%的样本都没有超过这个时间。
这个值是指把所有数据按由小到大将其排列,就是排列在第50%的值。
5. 90% Line:90%的样本都没有超过这个时间。这个值是指把所有数据按由小到大将其排列,就是排列在第90%的值。
6. Min:针对同一请求取样器,请求样本的最小响应时间
7. Max:针对同一请求取样器,请求样本的最大响应时间
8. Error %:出现错误的请求样本的百分比
9. Throughput:吞吐量以“requests/second、requests /minute、requests /hour”来衡量。
时间单位已经被选取为second,所以,显示速率至少是1.0,即每秒1个请求。
10. Received KB/sec - 收到的千字节每秒的吞吐量测试。
11. Kb/sec - 以Kilobytes/seond来衡量的吞吐量(发送的千字节每秒的吞吐量测试)
3. 项目-性能脚本设计
3.1 性能脚本设计技巧
1. 新增、更新、删除:使用固定数值,比如新增100条,更新100条,删除100条
2. 查询:采用虚拟用户数和持续时间配合(比如,100用户,持续查询600秒)
3.2 提示
1. 参数化:参数化尽量避免采用从外部读取参数,使用固定参数+函数形式( 如:${__counter(TRUE,)})
2. 察看结果树:必须清除单个接口内察看结果树
(如不去掉,非常占用测试机自身性能),在测试计划下添加一个察看结果树
3. 报告:性能报告可根据实际需求选择,建议保留添加聚合报告
4. 线程组:增删改查每一个功能点,都需建立单独线程组,而避免在同一个线程组内添加
多个HTTP请求完成增删改查(一便参数化对单个请求做压测和并发)
5. 分布式:如并发数量大,采用分布式测试
6. 新增/删除:新增和删除接口建议不要采用时间模式来压测,直接使用线程数和循环;