性能测试相关知识(四) 性能测试的测试计划模板

1.背景

公司之前的测试团队做API的自动化测试都是使用JMeter等工具来进行,这样的话测试效率而言不是特别高,而且在扩展性方面不是很有竞争力,所以开发了新的测试平台,但是考虑到公司的测试人员有1000多人,那么就需要验证1000人同时使用测试平台是否会出现平台无响应以及崩溃(雪崩)的情况。

2.测试前期准备工作(前置工作)

序号工作内容负责人时间备注
1 测试场景梳理 XXX 2022-2-18-2022-2-18 今天完成
2 资源采购(阿里云服务器等。。。。) XXX 2022-2-18-2022-2-18 与生产保持一致
3 目标输出 XXX 2022-2-18-2022-2-18  
4 测试数据的准备 XXX 2022-2-18-2022-2-19 需要1000W的数据
5 人员不够 测试经理协调   需要一人协调

3.测试工具的引入

基于梳理的业务场景,和服务底层的稳定性体系的保障,性能测试,测试工具的选择 具体如下

序号工具 选择理由备注
1 JMeter 开源,可以做常规以及并发测试  
2 Locust 开源,基于协程,来测试服务稳定性这部分 验证服务是否出现崩溃
3 JVM监控工具 验证检测服务是否出现OOM  
4 Grafana&linfluDB 数据可视化展示  

4.测试计划

4.1背景

公司之前的测试团队做API的自动化测试都是使用JMeter等工具来进行,这样的话测试效率而言不是特别高,而且在扩展性方面不是很有竞争力,所以开发了新的测试平台,但是考虑到公司的测试人员有1000多人,那么就需要验证1000人同时使用测试平台是否会出现平台无响应以及崩溃(雪崩)的情况。

4.2前置工作

序号工作内容负责人时间备注
1 测试场景梳理 XXX 2022-2-18-2022-2-18 今天完成
2 资源采购(阿里云服务器等。。。。) XXX 2022-2-18-2022-2-18 与生产保持一致
3 目标输出 XXX 2022-2-18-2022-2-18  
4 测试数据的准备 XXX 2022-2-18-2022-2-19 需要1000W的数据
5 人员不够 测试经理协调   需要一人协调

 

4.3人员配备

4.4技术(工具)选择

序号工具 选择理由备注
1 JMeter 开源,可以做常规以及并发测试  
2 Locust 开源,基于协程,来测试服务稳定性这部分 验证服务是否出现崩溃
3 JVM监控工具 验证检测服务是否出现OOM  
4 Grafana&linfluDB 数据可视化展示  

4.5测试范围

序号场景目标负责人时间是否完成备注
1 测试并发登录 满足100人同时登陆 XX 2022-2-18    
2 产品列表加载 同时满足50个人加载,响应时间小于5秒 XX      
3 同事执行API测试用例 响应时间小于5秒,最大并发100 XX      
4 上传文件最大支持2G 不能出现OOM XX      
5 支持持续的发送API请求 验证服务的稳定性,请求都是OK的 XX      
6 产品搜索 响应时间小于5秒 XX      

4.6测试风险

目前无风险

5.测试设计与开发

5.1JMeter工具

测试并发登录

 

 

 

 

 5.2关于文件上传需要考虑的店

1.Socked Time Out (可以将文件进行柴文,但也有可能出现 2、3的问题)

2.文件上传成功  文件缺失
3.文件上传成功 文件内容乱码

5.3如何进行排查

1.打开JVM

2.获取pid

3.查看监控(cpu memory)

4.页面上进行操作 文件上传

5.当内存达到顶点时,观察日志 看看有没有发生OOM

5.4Locust开发

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

6.测试执行与管理

6.1登录场景

 

 

 

 

 

 

 

参与人员

测试人员版本备注
XX,XX,,XX,XX,,XX,,XX    
     
     

 

报告汇总

测试并发登录

测试结论:测试结果不符合预期,在100用户并发登录的情况下,响应时间最大是31.88s,

过程的数据

测试风险

序号风险描述备注
1 并发用户数载100的时候是满足要求,但是在110的时候,响应时间不满足,可能会给用户的体验很差劲  
2 在20次的测试中,存在1次额文件上传失败,概率是5%  
     

 

 

 

测试结论

序号并发登录是否通过备注
1 并发登录测试 不通过  
2      
       

 

posted on 2022-02-18 19:14  钢镚芽儿哟  阅读(229)  评论(0编辑  收藏  举报

导航