怎么做性能测试?
步骤:
-
性能测试策略
-
单场景测试(找到核心模块或使用频繁模块)
-
稳定性测试 (长时间跑,负载80%)
特定场景:
- 特定时间相关性用例 定时任务运行时候
- 特定文件相关性用例 大数据传输,备份等主备机测试(HA) 可靠性测试极限加压—->恢复正常负载 可恢复性测试注册用户容量测试 容量测试(看硬盘)在线用户容量测试 容量测试(看内存)
设置堆内存
E:\JMETER\bin\jmeter.bat
if not defined HEAP ( rem See the unix startup file for the rationale of the following parameters, rem including some tuning recommendations set HEAP=-Xms2g -Xmx2g -XX:MaxMetaspaceSize=256m )
-Xms:JVM初始分配的堆内存。表示初始化JAVA堆的大小及该进程刚创建出来的时候,他的专属JAVA堆的大小,一旦对象容量超过了JAVA堆的初始容量,JAVA堆将会自动扩容到-Xmx大小。
-Xmx:JVM最大允许分配的堆内存,按需分配。表示java堆可以扩展到的最大值,在很多情况下,通常将-Xms和-Xmx设置成一样的,因为当堆不够用而发生扩容时,会发生内存抖动影响程序运行时的稳定性。
理论值可以达到物理内存的80%
一般不超过物理内存的50%
线程组里的参数
ramp-up:一定时间内生成相应的线程数
一般线程数/ramp-up的值在50~100
循环:一个线程运行多少次
循环+调度器(持续时间):在多少秒一直运行
同步定时器<==>集合点 先同步集合在一起,再发请求
固定定时器<==>思考时间 先思考再发请求
放在http请求内
wireshark抓包
过滤:ip.addr == 192.168.150.137 and http
python生成1000条数据
with open(‘100.txt’,’w+’) as file:
for i in range(1,1000):
file.write(f’sq{i:0>3},123456\n’) #>表示i右对齐,总宽为3,不足部分以0填充
with open(‘100.txt’,’w+’) as file:
for i in range(1000,2000):
file.write(f’,”17/1/2020 22:34:24”,NULL,”123456986@qq.com”,”0”,”0”,”0”,”e10adc3949ba59abbe56e057f20f883e”,”0”,”0”,”0”,sq{i:0>3},”BUYER”,”0”,”0”,\n’) #>表示i右对齐,总宽为3,不足部分以0填充
使用txt类型导入
beanshell
beanshell应用:
- 数据库断言
- RSA加密,混合加密
- 接口签名
- 调用开发给的jar包,class文件,java文件
- csv数据驱动之后的断言
- 跨线程组共享变量
beanshell分类:
beanshell有本身的语法,同时支持java语法
beanshell自带的语法(内置变量)
1.打印调试
log.info(“码尚教育”);
log.error(“码尚教育”);
System.out.println(“java打印日志”);
2.vars
作用:读写jmeter的局部变量(只在一个线程组里使用)
beanshell支持的java语法
vars.put("name","白李老师")
vars.get("name")
3.props
作用:跨线程使用
#第一个线程添加beanshell
props.put("name",百里老师");
#第二个线程添加beanshell
props.get("name");
vars.put("www","name");
props.put+props.get配合使用
props.get(“language”);
prev.getResponseCode();
jmeter的MD5加密