jmeter参数化(三种方法)

jmeter参数化(三种方法),第1张

创建:添加->配置元件->用户定义的变量

作用:当前的线程组内所有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接口性能测试等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9664798.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-30
下一篇2023-04-30

发表评论

登录后才能评论

评论列表(0条)

    保存