前言
在jmeter测试过程中,我们是不是要每运行一次都要改一次数据,是不是特别繁琐?有时还会漏测?有没有感到疲惫呢?今天来教大家一个借助外部工具来方便我们测试的好方法----CSV参数化.
CSV参数化是什么?作用是什么?
1.定义:CSV是一种通用的、相对简单的文件格式,被用户、商业和科学广泛应用。最广泛的应用是在程序之间转移表格数据,而这些程序本身是在不兼容的格式上进行操作的(往往是私有的和/或无规范的格式)。因为大量程序都支持某种CSV变体,至少是作为一种可选择的输入/输出格式。
例如,一个用户可能需要交换信息,从一个以私有格式存储数据的数据库程序,到一个数据格式完全不同的电子表格。最可能的情况是,该数据库程序可以导出数据为“CSV”,然后被导出的CSV文件可以被电子表格程序导入。
2.作用:外部导入数据,帮助jmeter完成自动化循环测试的方法,方便保存测试用例,随时做回归测试或者调用.
CSV操作步骤
1.excel
- 新建一个excel文档,写测试用例的各种情况,另存为CSV形式
2.Notepad++ - 用notepad++打开,把最后的换行符删掉,保存
3.fidder - 抓包,导出jmeter脚本(黑色小怪)
4.jmeter -
a.在jmeter中导入脚本,填写HTTP请求里的信息
-
b.在线程组里添加一个CSV数据文件设置
-
c.填写CSV数据文件设置内容
- d.在HTTP和响应断言中使用变量
(1)怎么使用变量?
${变量}
-
e.添加循环控制器
(1)添加方法
(2)目的:只运行循环控制器里的请求
(3)调整层级结构,设置循环次数
- f.运行
正则表达式提取器 和 如果(IF)控制器
正则表达式提取器作用:提取上个接口响应中的数据存放到变量中,给其他元件使用。
正则表达式提取器用法:
如果(IF)控制器作用:如果满足if控制器里的条件,就执行if控制器内部的元件
如果不满足if控制器里的条件,就不执行if控制器内部的元件
如果(IF)控制器用法:
测试流程
1.fidder抓包,批量导出脚本
如用户名注册登录查询4个页面
2.jmeter导入脚本
如用户名注册登录查询4个页面
3.添加用户定义的变量
4.函数助手对话框,生成随机函数,把生成的字符串复制到用户定义的变量中
5.把所有元件中正文中变量名为userName={userName} 6.添加正则表达式提取器,放在校验内 7.如果(IF)控制器 考虑逻辑,如果校验成功,就证明没有注册过,就直接注册 8.给其他元件添加响应断言,输入预期,最后一个元件响应断言填写{变量名}
9.其他元件中用户名对应的值输入为${uesrName}
10.运行