接口请求中有很多默认的参数,长期不变的,比如app端的channel、version、devicecode等,每次都写到http请求里面略微繁琐,jmeter提供了很好用的http请求默认值,如下图1:
可以把一些公共的参数提取到默认值里面写,但是是http请求默认值只能用parameters参数,而利用csv参数化的时候,因为测试场景的多样化,不想每个参数都占一行,于是想把整个请求写到一个csv文件单元格,那么只能放在http请求的body中,如下图2:
但是导致了一个矛盾,那就是http请求默认值用的是parameters,而http请求用的是Body Data,拼接在一起的时候,只取了${myData}+http请求默认值的value1+value2,没有name,并且没有&符号连接两边接口请求,这样的数据请求根本不可用。
了解到拼接的规则后,可以不按常规方法设置请求默认值,不规规矩矩的填name和value,达到拼接一个正确的接口请求的目的,如下图3:
这样修改后,接口请求成功。
谨以此记录下这个曲线救国的方法,如果有更好的方法,欢迎告知。