Jmeter读取本地txt/csv文件作为请求参数,实现接口自动
2018-02-13 本文已影响0人
莫依痕
前提1:找到apache-jmeter-3.2->bin,点击Jmeter.bat启动Jmeter
前提2:如果响应数据里返回中文,在jmeter.properties中进行编码设置
jmeter.properties编码设置.png
1、在测试计划中新建线程组,我这里测试具体项目的一个接口,所以在线程组加了HTTP信息头管理器(一般设置Authorization和Content-Type即可)、CSV Data Set Config、HTTP请求和查看结果树
测试计划组成.png
2、新建一个txt文件,输入具体参数,用英文“,”隔开(Delimiter里可以随意设置英文分割符号进行分割,但是Delimiter设置什么分割符,txt里的元素一定要用那个分割符号),一定不要写列名
txt转csv.png
3、CSV Data Set Config里的filename写具体csv的本地地址,csv里一行有多少个值,Variable Names就写几个值,多个参数具体用“,”隔开
CSV Data Set Config.png
4、HTTP请求里的Body内容,需要用本地的值作为参数,按照下面方式书写,格式是"${variable name}",如果请求值有中文,记得Content encoding里要输入UTF-8,否则会乱码
[{"user_id":"${userid}","user_name":"${username}"}]
HTTP请求设置.png
5、csv里有几行内容,线程组的个数就设置多少,否则无法保证csv的所有内容都运行。可以通过查看结果树看请求和响应数据
查看结果树.png
遇到的坑:
1、HTTP请求中误勾选Use multipart/form-data for POST
请求数据是一串ID,误以为是编码问题,排查了jmeter.properties编码设置和HTTP请求中Content encoding设置,排除乱码问题。后来发现是勾选了Use multipart/form-data for POST,找不到数据引发的问题
请求数据报错.png
2、请求参数写在Parameters里
post请求的参数有3种实现形式(Parameters、Body Data、Files Upload),有些请求内容的数据格式是json格式的,不能把参数写在用Parameters,识别不了,导致响应数据有误
响应数据有误.png