zoukankan      html  css  js  c++  java
  • Jmeter数据驱动理念

    数据驱动

    什么是数据驱动:

    1. 1.       从数据文件中读取测试数据,驱动测试过程的一种测试方法(excel)
    2. 2.       数据驱动可以理解为更高级的参数化

    特点:

    1. 1.       测试数据与测试代码分离
    2. 2.       数据控制过程

    好处:

    1. 减少测试代码量
    2. 降低脚本开发和维护的成本
    3. 便于用例的修改和维护(不用修改代码)

    要求:

    1. 较强的代码能力
    2. 较强的分层架构设计思维
    3. 对开发框架要有一定的了解

    数据驱动的使用场景:

    1. 1.       复杂的业务流程
    2. 2.       根据业务场景分流
    3. 3.       符合条件的并发场景

    电商业务模型(场景):

    1. 打开首页
    2. 登录(浏览生活用品, 浏览床上用品, 查看购物车)
    3. 注册(重定向登录, 退出登录)
    4. 浏览电子商品

    Jmeter中数据驱动的控制方式:

    1. 参数化(csv,  txt, 数据库)
    2. 逻辑控制器(分流针对不同用户行为)

    Jmeter数据驱动实战:

             场景:

    1. 1.       登录后男人浏览电子商品
    2. 2.       登录后女人浏览化妆品

    Jmeter使用(使用数据库来保存测试数据):

    1. 测试计划->添加->Threads(Users)->线程组
    2. 测试计划->添加->配置元件->JDBC Connection Config-> Variale Name:user database URL:

    jdbc:mysql://10.30.50.214:3306/ faw_fusion?serverTimezone=UTC

    1. JDBC Driver calss:可选择
    2. Username:root
    3. Password:root
    4. 线程组->添加->Sampler->JDBC Request->Variable Name:user(与数据库设置的变量名称一致)->查询语句:select sex from user;-> Variable names:sex(存储查询结果的变量名称) 备注: Parameter values 和parameter types的作用.如果查询语句中写的是select sex from user where id = ?; 占位符?, 即可以使用Parameter values输入的值, 类型则是parameter types输入的类型; Result variable name作用,是查询语句返回的结果集,如果sexArray
    5. 线程组->添加->监听器->查看结果树
    6. 线程组->添加->Sampler->Debug Sampler
    7. 线程组->添加->逻辑控制器->如果(If)控制器->条件${sex_1}==0(debug Sampler里返回的值) 如果控制器->添加->Sampler->添加http请求(此处添加BeanShell Sampler打印结果, System.out.println(“男人浏览了电子商品”))
    8. 线程组->添加->逻辑控制器->如果(If)控制器->条件${sex_1}==1如果控制器->添加->Sampler->添加http请求(此处添加BeanShell Sampler打印结果, System.out.println(“女人浏览了化妆品”))
    9. 因有四条数据之前仅限制了(sex_1),线程组->添加->配置元件->CSV Data Set Config->新建test.csv放到jmeter的bin目录下,每一行放一个id,即4个id,可以从数据库中导出-> CSV Data Set Config中Filename是csv的绝对路径,Fileencoding选择UTF-8,Variable Names:id, 目的是JDBC Request取数据的时候能够一条一条取
    10. 进入JDBC Request : 将SQL语句修改为select sex from user where id = ${id};将线程组的线程数修改为4
    11. 不将线程组修改为4,直接用循环控制,去掉JDBC Request中的where条件,csv删除,使用sex_# =4来控制,循环去1,2,3,4的值
    12. 线程组->添加->配置元件->计数器->启动:1, 递增1,最大值${sex_#},引用名称:count
    13. 选项->函数助手对话框->sex_${count}(计数器里的值)->点击生成,然后进入到如果控制器->条件修改成${__V(sex_${count})}==0
    14. 线程组->添加->逻辑控制器->循环控制器->循环次数:${sex_#}
  • 相关阅读:
    洛谷P4175 网络管理
    洛谷P2605 基站选址
    洛谷P3723 礼物
    bzoj3771 Triple
    洛谷P3321 序列统计
    bzoj2194 快速傅里叶之二
    1109课堂内容整理
    响应式网页
    表单隐藏域有什么作用?
    1106课堂笔记
  • 原文地址:https://www.cnblogs.com/jiyanjiao-702521/p/12522076.html
Copyright © 2011-2022 走看看