概念
引用一个别博主的:
https://zhuanlan.zhihu.com/p/30588403
感觉像是更高级的参数驱动,等待专门的数据驱动我们再深入了解.
特点
- 数据和代码分离
- 数据控制过程.(比如很多数据去访问不同业务.浏览下单等)
- 减少测试代码量
- 降低脚本开发维护成本
- 便于测试用例的修改
我们要做什么
- 能操作excel(csv)文件,或者数据库,或者其他文件
- 分层架构设计思维
- 用面向对象进行测试用例的开发
- 测试框架的了解
使用场景
- 复杂的业务流程
- 业务场景分流
- 符合条件的并发场景
单接口这类的没有必要.
电商业务模型
这时候我们根据业务经验或者同行等, 将测试数据进行控制分流,
比如90%的人浏览商品,8%的人登录,剩下的人注册.
然后90%的人里面又有50%下单.
等等…
实现方法
- 参数化(csv或者数据库)
- 逻辑控制器
csv文件用在分布式测试的时候就有点麻烦,需要在每台机器都要有文件.
但是数据库不需要,而且数据结构化程度高,便于修改操作.
通过逻辑控制器if,可以分流等.
比如偶数客户干啥,奇数顾客去干啥.
逻辑控制器循环结构,可以模拟秒杀等操作,不停的刷新界面.
Demo
男人浏览电子商品.
女人浏览化妆品.
创建表
我们用postgres做测试数据存储.
create table userinfo(userid bigint, username varchar, sex smallint, createtime timestamp(6) without time zone,PRIMARY KEY(userid));
插入测试数据:
我们sex用0表示女人. 插入1000条
insert into userinfo
SELECT generate_series(1,1000),md5(random()::text),0,clock_timestamp();
我们sex用1表示女人. 插入1000条
insert into userinfo
SELECT generate_series(1001,2000),md5(random()::text),1,clock_timestamp();
jmeter创建数据库连接
我本地有DBever,所以我直接把DBever的JDBC驱动cpoy过去.
C:\Users\10142234\AppData\Roaming\DBeaverData\drivers\maven\maven-central\org.postgresql\
copy到安装目录下的lib目录
或者在测试计划中添加环境变量指向驱动
配置数据库连接
数据抽取
https://www.cnblogs.com/liu-xiaoliu/p/9146449.html
https://blog.csdn.net/zhu940923/article/details/94446276
select userid,username,sex from userinfo where userid > ? and userid < ?
简单打印一下
https://www.cnblogs.com/wz123/p/11353570.html
取出来是个结果集, 所以你要指定用哪个.