项目中项目经理要求把接口响应报文某些字段保存到csv文件,上网查找资料发现jmeter可以实现。
目标要求:
1.添加csv参数组件对传参进行参数化
- File encoding: 保持默认。默认为ANSI
- Variable Names: 给csv文件中各列起个名字(有多列时,用英文逗号隔开列名)便于后面引用
- Delimiter:与 .csv文件的分隔符保持一致。如文件中使用的是逗号分隔,则填写逗号;如使用的是TAB,则填写\t;
- Allow quoted data? :是否允许引用数据,---这个目前还未弄明白,设置成True或者False都能正常引用数据。
- Recycle on EOF?:到了文件尾是否循环,True—继续从文件第一行开始读取,False—不再循环
- Stop thread on EOF? :到了文件尾是否停止线程,True—停止,False—不停止,注:当Recycle on EOF设置为True时,此项设置无效。
- Sharing mode:共享模式,All threads –所有线程,Current thread group—当前线程组,Current thread—当前线程。
2.对请求发送的参数进行参数化
3.doctyp、docnbr可以直接取csv参数表,status需要从响应报文中获取,添加正则表达式提取器,用来提取响应结果中的status
1)正则表达式为 "status": "(.+)"
() 表示括起来的部分就是要提取的。
. 表示匹配任何字符串。
+ 表示一次或多次。
2)模板:用$$引用起来,如果在正则表达式中有多个正则表达式,则可以是$2$,$3$等等,表示解析到的第几个值给seq。如:$1$表示解析到的第1个值,我们这里只有一个正则表达式,所以是$1$
3)匹配数字:0代表随机取值,1代表全部取值,通常情况下填1
4)缺省值:如果参数没有取得到值,那默认给一个值让它取,通常情况下为空
4、在本地新建一个123.csv文件,然后添加一个BeanShell PostProcessor,用于提取结果并将之保存到123.csv文件。