DDT 数据驱动测试
数据驱动
数据怎么来?
用文本工具,批量造一批数据
如用Excel
怎么用数据?
使用数据文件 ------ csv数据文件设置
csv格式:本身就是一个文本文件, 一种 用逗号分割列的 文本文件
csv数据文件设置 这个功能,支持的就是文本格式文件(可以是 csv、txt、json)
csv数据文件设置(性能测试过程中 ** csvRead函数**,尽可能不用)
csv数据文件设置
文件: 可以是 txt、csv
路径:默认时是 绝对路径
相对路径 -----** 建议使用相对路径**
相对路径的起始点?
默认的是 jmeter的bin文件夹 ----默认时,jmeter文件保存路径
就是 bin文件夹
当前保存的jmx文件
相对路径的写法?建议: / 开头 文件地址(因为/ 兼容linux和Windows,\路径不兼容linux)
如果路径取不到文件,整个jmeter就报错,不执行任何请求(因为csv数据文件设置,是 配置元件 优先级最高)
文件格式,建议用 txt
txt文件,在Windows下,默认是utf8编码
csv文件,编辑器很多时候用 Excel,Excel在Windows下保存文件时,默
认不是utf8
而csv数据文件设置,选择用utf8, 两个编码不一致,就会导致 中文乱码
解决方法: csv文件,不用 Excel打开,而用 记事本
文件编码:
选择与你文件格式一致的编码
变量名称:
定义变量来接受读取的值
定义多个变量名称,之间 用 英文逗号
分割符:
分割符合 要与 文件中的分割符一致
文件中用 tab键 分割列, 填 \t
忽略首行:
是否运行带有引号:
true: 忽略一对双引号(英文),false:不忽略引号
遇到文件结束符再循环?
true: 是的 会再循环 ---遇到最后一条数据,又会从头开始
false: 不会循环 超过这个行数量之后,就是 是 空值
遇到文件结束符停止线程?
false: 不停止线程
true: 停止线程,不干活
线程共享模式:
当前线程: ------所有的线程,都会单独读取一份csv文件,从自己读取的文件中读取值
csv数据文件设置,默认情况下,所有的并发用户,都是从同一份文件串行的从上往下执行
默认情况下,csv文件只读取了一次
csv数据文件设置这个功能存在的问题: 在分布式执行性能测试时候,因为它是从第1行开始读取,所以所有的分布式机器也都是从第1行开始读取,导致 重复读取同一行数据问题。
逻辑控制器
控制取样器执行的逻辑的,如果逻辑控制器下面没有取样器,这个逻辑控制器就没有意义
if条件控制(jmeter中只有if 没有elif 和else)
满足条件 执行下面的取样器
默认情况下, 条件需要使用 jexl3 或 groovy函数 的运算结果为 真true
用表达式 : 就要去掉 interpret condition as varibale expression
循环控制器
foreach控制
事物控制器
在jmeter中,有 一个取样器执行一次完成的请求,就算一个事物 ----单接口请求
jmeter中,多个取样器,完整的执行一次请求,也可以算一个事物 ----业务接口
就要使用 事物控制器,且 勾选 Generate parent smaple
仅一次控制器
一个线程只执行1次