Jmeter(三十一)_数据驱动,业务关联
这种数据驱动的本质是:将测试的case,参数,url,预期结果,存储于本地excel中。运行脚本时,从文件中获取预期结果,将实际结果与预期结果比较,将实际结果,比较结果,响应状态码回写excel。
一:主干业务处理
1:需要的jar包
Apache POI 3.17
Apache POI-OOXML 3.17
Apache Commons IO 2.6
OOXML模式1.3
commons-collections4-4.1
xmlbeans-2.6.0
2:将这些jar包放到jmeter的lib目录下,记得要在jmeter关闭的情况下放置!然后重启jmeter 。
添加jar包后,在本地jmeter目录下创建用例文件,如下所示
- Case - 用例名称
- parameter- 参数值,用于生成对API的请求
- request - 在此列中,JMeter将向API写入接口路径
- Method - 在此列中,JMeter将写入请求方法
- ActualResult - 实际结果是我们接口实际返回的结果。将与预期值进行比较
- ExpectedResult 预期结果是我们期望从API获得的结果,手动写入
- ResponseCode 响应码是我们接口返回的响应状态
- Status Jmeter将实际值与预期值进行比较,得出断言结论
2:添加一个线程组
3:添加一个用户变量
在测试计划中创建一个名为“pathToFile”的变量”。这个变量的值是我们上面创建的Excel文件的路径(注意双反斜杠)
4. 添加一个JSR223采样器,目的是根据excel文件创建一个Workbook对象
代码如下:
5:添加一个While控制器
While控制器用于Excel文件包含输入数据的行数,作为发送请求的次数
在While Controller中,添加以下代码,用于停止While Controller
${__javaScript("${stopWhile}"!="OK")}
6:While控制器下添加一个计数器,用于循环计数
7:While控制器下添加一个JSR223采样器
这一步我们从excel中获取字符串,并将这些值存储在变量中
8:While控制器添加一个if控制器 ,用于判断excel中的方法,决定接口分支
9:IF控制器下添加http请求 ,该请求在控制器下循环读取用例(接口路径和参数)
10:http请求下循环提取响应信息 ,用于和预期值进行比较
11:http请求下添加一个BeanShell断言 ,用于比较实际结果和预期结果,并在Excel中记录响应实际值,响应状态和用例通过状态
12:添加JSR223采样器 ,用于回写运行结果到excel中
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFRow;
import java.io.*;
try {
FileOutputStream out = new FileOutputStream(new File("${pathToFile}"));
vars.getObject("book").write(out);
vars.getObject("book").close();
} catch (Exception e) {
log.info("!!!!!!!!" + e.getMessage() + "!!!!!!!!!!!!!!!");
}
注:
1:以上所有主干业务写入excel中的sheet1!
2:从主干业务中返回主数据id和session,并保存为全局变量供支线业务调用
二:分支业务处理
1:在excel中创建新的sheet,作为分支流程的数据
2:创建一个新的线程组,写入分支业务流,修改sheet值
3:sampler中调用全局变量的主数据id,与主业务流进行关联
以上配置完成之后,执行脚本。数据会写入两个sheet文件,分别回写用例执行结果
Jmeter(三十一)_数据驱动,业务关联的更多相关文章
- Jmeter(二十一)_脚本参数化与内存溢出的解决方案
这一篇文章随便说一下JMETER的脚本参数化 1:Parameters的两种参数化方法 1.1:函数助手参数化 首先准备你的参数数据.我在bin/data中新建了一个dat文件,记事本另存为修改编码为 ...
- jmeter(五十一)_性能测试中的服务器资源监控与分析
概述 性能测试过程中,对服务器资源的监控是必不可少的.这里的资源又分了两块,windows和linux linux下监控资源 访问网址http://jmeter-plugins.org/downl ...
- Jmeter(四十一)_图片爬虫
今天教大家用元件组合,做一个网页图片爬虫. 需要用到的元件:循环控制器+计数器+xpath提前器+函数嵌套+beanshell代码 首先我们确定一下要爬取的图片网站:https://dp.pconli ...
- Jmeter(三十一) - 从入门到精通 - Jmeter Http协议录制脚本工具-Badboy4(详解教程)
1.简介 上一篇文章中宏哥给小伙伴或童鞋们介绍讲解了手动添加Variable list的值,而实际工作中Badboy为我们提供了Variable setter工具,让我们不再使用哪一种比较笨拙的方法了 ...
- Jmeter(二十一)_完整Demo
1:创建一个线程组 2:添加一个cookie管理器 3:设置你的信息头管理器:application/json;text/plain;charset=UTF-8 44 4:添加一个用户 ...
- jmeter 单接口测试方案(接口无业务关联)
前言 前面开了一篇讲了Jenkins+jmeter+ant的使用,但没有说到具体怎么投入到项目使用,主要介绍了接口测试定义,流程和环境部署,所以我今天要说的就是我是怎么将这个方案投入到实际中使用的.这 ...
- Jmeter(三十)_TimeShift函数在JSR223中的使用
今天学习一下TimeShift函数在JSR223中的使用方法. 关联之前的一篇时间戳文章:Jmeter(十二)_打印时间戳 首先,创建线程组,在线程组下面创建一个JSR223采样器 选择Groovy语 ...
- FreeSql (三十一)分区分表
分区 分区就是把一个数据表的文件和索引分散存储在不同的物理文件中.把一张表的数据分成N多个区块,这些区块可以在同一个磁盘上,也可以在不同的磁盘上,数据库不同实现方式有所不同. 与分表不同,一张大表进行 ...
- Bootstrap <基础三十一>插件概览
在前面布局组件中所讨论到的组件仅仅是个开始.Bootstrap 自带 12 种 jQuery 插件,扩展了功能,可以给站点添加更多的互动.即使不是一名高级的 JavaScript 开发人员,也可以着手 ...
随机推荐
- Linux进程描述符task_struct结构体详解--Linux进程的管理与调度(一)【转】
Linux内核通过一个被称为进程描述符的task_struct结构体来管理进程,这个结构体包含了一个进程所需的所有信息.它定义在include/linux/sched.h文件中. 谈到task_str ...
- 在excel中将缺失数据全部用0补齐
先ctrl+H ,出现如下对话框 点击“定位”,选择“空值” 在表格中空的位置上编辑栏输入0,CTRL+ENTER,即可将缺失数据全部用0补齐.
- 常见的web攻击方式
跨站脚本攻击(XSS) 概述 跨站脚本攻击(XSS,Cross-site scripting),指攻击者在网页中嵌入恶意脚本程序,是最常见和基本的攻击WEB网站的方法.攻击者在网页上发布包含攻击性代码 ...
- socket.io+angular.js+express.js做个聊天应用(三)
版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/www19940501a/article/details/27590611 接着前面博客文章socke ...
- centos7下安装docker(10容器底层--cgroup和namespace)
cgroup和namespace是实现容器底层的重要技术 cgroup:实现资源限制 namespace:实现资源隔离 1.cgroup:control group Linux操作系统通过cgroup ...
- python re模块记录
import re'''re模块 compile match search findall group groups 正则表达式常用格式: 字符:\d \w \t . (\d:数字;\w ...
- sum-root-to-leaf-numbers (前序遍历)
class Solution { public: int sumNumbers(TreeNode *root) { ; if (root == NULL) return sum; return pre ...
- springdashboard环境搭建
SpringCloud Hystrix Dashboard Hystrix-dashboard是一款针对Hystrix进行实时监控的工具,通过Hystrix Dashboard我们可以在直观地看到各H ...
- Objective-C 类簇深入理解
类簇(class cluster),是一种基于抽象工厂的设计模式,广泛运用于系统的Foundation框架.顾名思义,即一坨类,这里指的是继承自同一父类的一组私有子类.这种实现既可以简化公共接口,又保 ...
- Selenium:三种等待方式
UI自动化测试,大多都是通过定位页面元素来模拟实际的生产场景操作.但在编写自动化测试脚本中,经常出现元素定位不到的情况,究其原因,无非两种情况:1.有frame:2.没有设置等待. 因为代码运行速度和 ...