当前位置: 首页 > article >正文

jmeter中用csv data set config做参数化2

在jmeter中,使用csv data set config进行参数化是很重要的一个功能,但是这个功能的使用需要十分仔细和小心,因为细节之处往往决定着结果的正确与否。

举例:

一个登录接口用加密密码登录,一个登录接口用原始密码登录。

分别设置3个不同的异常场景:1.用户名不存在 2.填写用户名,不填密码 3.不填用户名,填写密码

2个接口的测试用例放在一个csv文件中。这里有个小tip: 默认csv文件是用,分隔,如果用xls表格来存储数据,对于有中文内容的测试数据,需要先通过txt记事本转换成utf-8bom编码格式【具体做法看另一篇】,然后再保存为csv文件,它会自动用逗号来分隔各个数据列,不需要逐行的添加逗号。这个非常重要

注意这里的测试数据,断言部分中因有逗号,之前是在数据前加单引号,现在不用加,也可以,只要allow quoted data设为True.【这个有点小疑惑吧,有的时候竟然不要加。】

接下来,运行脚本,看结果。

结果报错了,不仔细看根本看不出问题。其实是等于1后的逗号,测试数据里给错了,给的是中文的逗号,但实际上返回的结果里是英文的逗号,就是这么个细小的地方就导致了断言失败。

给他改过来,再重新运行一次。

这回脚本全部运行成功。

说下,这个脚本里用到参数化的地方,即测试数据里的各个字段,都应用到接口脚本的参数化中了。看图。

这里传参需要加密,都可以在测试数据的参数上直接运用函数,非常好用。

又思考了下,为了方便统一管理测试数据的参数化,对于需要使用加密函数的接口和不需要加密的接口用一个http请求去做参数化,能不能行?即如果把函数写在测试数据上,能不能生效?事实证明,经过试验,不可行。

看请求信息,加密函数在测试数据中,然后再调用过来,没法生效,反而报错。

正确的加密函数传参时是这样的:

所以,如果http请求中使用的参数化的参数不一致,还是得分不同情况来做参数化。

如果每个接口使用的参数化不一样,那么就得用不同的线程组来完成参数化。

总结:使用csv data set config做参数化,细节把控非常重要,一个标点符号就能让测试结果发生错误。


http://www.kler.cn/news/359236.html

相关文章:

  • 读书笔记:《Redis设计与实现》之集群
  • 数据结构实验十一 图的创建与存储
  • 第 5 章 Kafka 消费者
  • 【Linux 从基础到进阶】使用Fail2Ban防止暴力破解
  • JS事件和DOM
  • 【项目经理面经】
  • Axios 的基本使用与 Fetch 的比较、在 Vue 项目中使用 Axios 的最佳实践
  • 【Python实例】Python读取并绘制tif数据
  • Java Maven day1014
  • 【Linux】【Jenkins】前端node项目打包教程-Linux版
  • java集合进阶篇-《HashSet和LinkedHashSet详解》
  • 003初识类与命名空间
  • 阵列式位移计有哪些功能特点
  • Javascript算法——双指针法移除元素、数组去重、比较含退格字符、有序数组平方
  • Vue3万能初始化
  • 2018年计算机网络408真题解析
  • Java爬虫:获取商品评论数据的高效工具
  • 嵌入式linux系统中多路复用和信号驱动实现
  • day14numpy
  • 【从零开始的LeetCode-算法】884. 两句话中的不常见单词