
创建:添加->配置元件->用户定义的变量
作用:当前的线程组内所有Sampler都可以引用变量,方便脚本更新;当参数发生变化时,只要在用户定义的变量中更新对应变量的参数即可,不需要逐个修改每个>
在进行网页或应用程序后台接口开发时,一般要及时测试开发的接口能否正确接收和返回数据,对于单次测试,Postman插件是个不错的>
步骤一:新建一个excel每一列是一个需要请求的参数,第一行是参数名。如图编辑excel。编辑完后保存为csv(参数值支持数字,特殊符号,下划线,中文)
步骤二:在测试计划里添加配置元件,选择csv数据文件设置
编辑csv数据文件设置 —— 点击浏览按钮 选择刚才保存好的csv
步骤三:配置请求参数,和固定参数唯一不同是参数值按照 ${参数名} 的格式编写
运行即可看到每个请求的参数值就是表格里读取的参数值
案例场景:在测试创建订单使用系统的企业支付时,需要获取到创建订单后的订单编号才能支付,在jmeter里面可以直接提取上一个接口json里面的值(sysno)作为下一个支付接口的入参。我现在有一个创建订单接口A,创建成功后会返回一个sysno值。企业支付请求接口B必须要获取到接口A返回订单编号才能支付。这里介绍一下jmeter使用后置处理器json extractor获取你想要得到的值,根据上一个接口具体返回的json格式去自定义json path expressionsjson路径表达式。
A接口创建订单接口文档基本信息
请求类型:POST
请求头部:application/json
请求参数:[{"soType":0,"distributorSysNo":100001,"receiverInfo":{"receiveAddress":"收货地址","receiveAreaSysNo":2620,"receiveContact":"联系人","receivePhone":"15878788784"},"products":[{"productSysNo":42753,"quantity":2,"memo":null,"expectDeliveryDate":null},{"productSysNo":41681,"quantity":1,"memo":null,"expectDeliveryDate":null},],"customerMemo":客户备注信息,"deliveyType":54}]
A接口的请求和返回的报文信息如下
B接口企业支付的接口文档基本信息
请求类型:POST
请求头部:application/json
请求参数:{"orderSysNos":["${ordersysno}"],"soSysNo":"${ordersysno}","payTypeId":"balancepay","orderType":0,"balancePwd":"123456"}
创建订单请求
JSON提取器
注意:添加后置提取器时一定要放在>
1在测试计划下面添加>
setUp Thread Group
在setUp Thread Group中使用__setProperty函数设置jmeter属性值(此值为全局变量值),将所需变量值如${token}设置为jmeter属性值,即newtoken,示例:
1、添加--后置处理器 -- 正则表达式
2、使用正则表达式获取第一个线程组得到的响应信息 例如:token
3、添加--后置处理器 -- BeanShell PostProcessor
4、 BeanShell PostProcessor ,内容如下:
Parameters: ${token}
Script:
String token = bshargs[0];
print (token);
${__setProperty(newtoken,${token},)}
5、再添加一个线程组 2
可以使用P函数进行对jmeterproperties的变量调用,
因此,在线程组2中使用_p函数来调用jmeter属性,获取属性值,从而实现跨线程组,参数值传递。
6、直接使用 ${__P(newtoken,)} , 即可获取token的值
6、参数设置使用用户参数,还是csv参数
用户参数和csv参数都可以使用,当并发用户比较多,且每个用户使用不同的参数时,使用CSV参数,方便编辑。
前置处理器-用户参数
配置软件-CSV Data Set Config
参数使用(格式为${参数名称})
7、参数有时间参数需要传当前时间,如何处理?
使用jmeter自带的__time,通过函数助手生成{__time(,)},参数值即为${__time(,)}
8、提交参数值随机生成函数
随机生成0-9的函数:${__Random(0,9,random_num_0_9)}
根据范围随机生成整数:${__Random(startNum,endNum,)}
注:startNum 开始数 ,endNum结束数,范围是闭区间 [startNum,endNum]
以上就是关于jmeter参数化(三种方法)全部的内容,包括:jmeter参数化(三种方法)、jmeter后置处理器--json提取器、使用Jmeter进行http接口性能测试等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)