获取到一个上传项目信息的接口
1)需求请求签名
2)调用同一接口间隔时间不能小于1秒
1)模拟实际用户,使用阶梯型线程加压进行模拟,这里使用的是阶梯式加压 jp@gc-Stepping Thread Group (deprecated)
2)添加用户参数组件
3)添加JSR223取样器获取接口需要的请求签名信息
JSR223取样器允许执行JSR223脚本代码用于创建/更新所需的某些变量,相比于BeanShell 取样器,JSR223取样器+groovy脚本具有可大大提高性能的功能(编译),同时支持更多的脚本语言
下面是获取请求签名代码
import hashlib import time rand = 'xxxx' # 获取时间戳并精确到毫秒 now = time.time() timestamp = str(int(round(now * 1000))) # timestamp = '1614231674297' vars.put("timestamp",timestamp) authid_enterprise = '28865bc11eb88xxecfaxxx' secret_enterprise = '288d1a5bc11eb88xxecfxxxb8' data = "{\"name\":\"中央公园项目1标段\",\"short_name\":\"中央公园\",\"project_code\":\"C0000001".decode('utf-8')+timestamp.decode('utf-8')+"\",\"type\":\"01\",\"state\":\"003\",\"start_date\":\"2020-12-01\",\"end_date\":\"2022-12-31\",\"contract_amount\":100000.1,\"province\":\"110000\",\"city\":\"110000\",\"town\":\"110108\",\"address\":\"北京市海淀区三里河路15号\"}".decode('utf-8') # 拼接字符串 result = 'rand='+rand+'×tamp='+timestamp+'&auth_id='+authid_enterprise+'&secret='+secret_enterprise+'&data='+data # 生成signature signature = hashlib.sha1(result.encode('utf-8')).hexdigest() #放入signatrue变量中 vars.put("signature",signature) log.info("---------------------"+timestamp+"------------------------")
4)添加http请求
5)添加http信息头管理器,用于设置请求头信息
6)添加断言,验证接口请求是正确
7)添加同步定时器
其作用是:阻塞线程,直到指定的线程数量到达后,再一起释放,可以瞬间产生很大的压力(人多力量大- -哈哈!)
(1)Number of Simulated Users to Group by:模拟用户的数量,即指定同时释放的线程数数量
(2)Timeout in milliseconds:超时时间,即超时多少毫秒后同时释放指定的线程数
1)聚合报告,这里的事务数用于使用了其他采样器,可参考性不强,可关注,是否有失败的请求,观察用户的响应时间等(最低,最高,95%,99%)
2)观察线程数
3)观察事务数,一般是观察最高、最低、大概率在哪个区间
4)观察响应时间,最高、最低、大概率区间
作者:是美好啊
原文链接:https://blog.csdn.net/qq_41596734/article/details/115378649