本文为博主原创,未经许可严禁转载。
本文链接:https://blog.csdn.net/zyooooxie/article/details/112656701
之前分享过 JMeter、Postman、Requests接口测试之数据关联,这次说下 JMeter、Postman读取csv文件来做参数化。
没有Requests,是因为 Requests会做接口自动化框架分享
个人博客:https://blog.csdn.net/zyooooxie
csv文件
A.文件内容包括
- 前五行 英文字母+数字 【第一行为2个变量名】
- 第六行 英文符号+英文字母+数字
- 第七、八行出现汉字、中文符号、英文字母、英文符号
- 最后一行 做个区分
B.实际发请求的数量: 11 【大于csv的数据量】
C.访问的是httpbin.org的接口
D.断言设置: 响应时间<=500ms + 状态码为200 + 参数化断言
JMeter
JMeter发送get请求
JMeter发送post请求:application/x-www-form-urlencoded
JMeter发送post请求:application/json
JMeter执行结果
参数化断言 报错的原因是编码不同;
Postman
Postman在编码的设置、修改上,我有疑惑
- get请求,没找到【右键-EncodeURIComponent 在参数化时,我不太满意;只能自己在Pre-request Script写】
- post请求,Headers设置了"Content-Type":“xxx;charset=UTF-8”,和不设置charset=UTF-8,我发现请求体 是一样的【Postman版本6.7.4】
Postman发送get请求
Postman发送post请求:application/x-www-form-urlencoded
Postman发送post请求:application/json
Postman设置的断言 + Collection Runner
Postman执行结果
断言失败的情况,我分了2种:
- 响应值的编码问题【前面JMeter说过了】
- get请求的编码问题
在Postman手动请求,再看看:
手动EncodeURIComponent:
若我们正常手动编码 发请求,实际没啥毛病的;但使用参数化时,Postman无法自动encode,咋整?
手动EncodeURIComponent,实际就是调用encodeURIComponent()。所以能不能写个前置,实现自动编码呢?
JavaScript encodeURIComponent() 函数
所以 参数化+get请求自动编码 最终做法:
最后说下
- Postman的Iterations可自动填写:先选文件,读取、解析csv后 Postman会自动填写;
- Postman执行次数 超过文件内的数据量,会执行最后一行的值;JMeter执行次数 超过文件内的数据量,具体行为 是在CSV Data Set Config中Recycle on EOF+Stop thread on EOF设置的
交流技术 欢迎+QQ 153132336 zy
个人博客 https://blog.csdn.net/zyooooxie