jmeter(四十六)参数化与断言实战
概述
今天用jmeter做一次参数化实战。通过计数器遍历参数表,然后查询jdbc进行beanshell断言。
涉及元件
用户参数,计数器,正则表达式,jdbc,beanshell脚本
详细过程
在我们的opms项目管理中,有一个项目状态的修正,四种状态分别为延期,挂起,进行,结束
在接口自动化案例中,我们需要对这四种状态进行遍历,然后进行断言,判断状态是否正确修改。
我们通过抓接口,发现了传参的一个规律:除了项目id之外,四种状态的status分别是1,2,3,4。
我们把添加项目的返回id用正则表达式提取出来,作为项目状态接口的入参,参数名称为projectid,这个是主键id
现在思考一下,接下来的四种状态,你要如何去操作才能全部执行一次并断言结果???
通常的做法是写四个接口,传四种参数,再添加四个断言,但是这种做法会造成大量的脚本冗余,在接口自动化中是会被鄙视的!如下:
现在教大家用精简的脚本完成复杂的逻辑校验
添加一个循环控制器,让它循环四次,可以遍历四种状态
添加一个用户参数,在参数表中配置四种项目状态
添加一个计数器,上限为4,递增1,用来遍历参数表中的四种状态
添加一个http请求,在名称中遍历状态名;在入参中遍历状态值
添加一个jdbc请求,通过变更的状态值和项目id组合查询的方式,验证每一次状态的变更是否正确的写入了数据库
我们在接口执行了之后,还需要去前端页面判断一下状态名称是否真的被修改了,在这里用到了xpath表达式去提取前端页面数据
添加一个beanshell断言,判断我们数据库返回值是否为空,如果不为空且和前端页面返回的状态名称,表示断言通过,否则断言失败
运行脚本,在结果树中和log日志中观察执行效果
遍历了四种状态并对实际运行结果进行了断言
关注公众号,获取更多精彩文章!
点击获取《jmeter接口自动化与性能实战-飞天小子.pdf》
jmeter(四十六)参数化与断言实战的更多相关文章
- Jmeter(四十六) - 从入门到精通高级篇 - Jmeter之网页图片爬虫-下篇(详解教程)
1.简介 上一篇介绍了爬取文章,这一篇宏哥就简单的介绍一下,如何爬取图片然后保存到本地电脑中.网上很多漂亮的壁纸或者是美女.妹子,想自己收藏一些,挨个保存太费时间,那你可以利用爬虫然后批量下载. 2. ...
- Android简易实战教程--第四十六话《RecyclerView竖向和横向滚动》
Android5.X后,引入了RecyclerView,这个控件使用起来非常的方便,不但可以完成listView的效果,而且还可以实现ListView无法实现的效果.当然,在新能方便也做了大大的提高. ...
- NeHe OpenGL教程 第四十六课:全屏反走样
转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线 ...
- 四十六、android中的Bitmap
四十六.android中的Bitmap: http://www.cnblogs.com/linjiqin/archive/2011/12/28/2304940.html 四十七.实现调用Android ...
- “全栈2019”Java第四十六章:继承与字段
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...
- 第四十六个知识点 在Sigma协议中,正确性,公正性和零知识性意味着什么
第四十六个知识点 在Sigma协议中,正确性,公正性和零知识性意味着什么 Sigma协议 Sigma协议是Alice想要向Bob证明一些东西的协议(Alice知道一些秘密).他们有下面的一般范式:Al ...
- Jmeter(四十八)_动态线程分析HTML测试报告
概述 jmeterGUI模式下,性能测试的结果往往误差很大,因为GUI本身就会消耗一部分资源.所以我们常常用命令行去跑性能脚本,得出结果 同时,jmeter在命令行下还可以生成多维度的测试报告,里面包 ...
- abp(net core)+easyui+efcore实现仓储管理系统——入库管理之十(四十六)
abp(net core)+easyui+efcore实现仓储管理系统目录 abp(net core)+easyui+efcore实现仓储管理系统——ABP总体介绍(一) abp(net core)+ ...
- 《手把手教你》系列技巧篇(四十六)-java+ selenium自动化测试-web页面定位toast-下篇(详解教程)
1.简介 终于经过宏哥的不懈努力,偶然发现了一个toast的web页面,所以直接就用这个页面来夯实一下,上一篇学过的知识-处理toast元素. 2.安居客 事先声明啊,宏哥没有收他们的广告费啊,纯粹是 ...
随机推荐
- JavaScript数据类型和语法
第一章 类型 1.2 内置类型 使用 typeof 检测对象类型并不是非常安全的行为: // 安全的 typeof undefined // 'undefined' typeof true // 'b ...
- 关于ThinkPHP5.1+的Log无法记录SQL调试记录的小经历
项目开发阶段,除了基本编码外,性能也需要实时关注与优化.之前我的大部分项目都是使用ThinkPHP5.0以及ThinkPHP3.2,对于框架提供的日志记录和日志配置都差不多,然后使用ThinkPHP5 ...
- 使用composer命令加载vendor中的第三方类库
1.首先下载需要的第三方类库,放在TP框架下的vendor文件夹下 2.给第三方类库SDK写上命名空间,命名空间为该类库的文件夹对应的名字 3.在composer.json文件中添加需要加载的第三方类 ...
- SAMBA 服务配置
Samba文件共享服务 Linux系统中一种文件共享程序 在Windows网络环境中,主机之间进行文件和打印机共享是通过微软公司自己的SMB/CIFS网络协议实现的.SMB(Server Messag ...
- Httpd服务入门知识-Httpd服务常见配置案例之定义路径别名
Httpd服务入门知识-Httpd服务常见配置案例之定义路径别名 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.创建测试数据 [root@node101.yinzhengj ...
- 第十一周LINUX 学习笔记
keepalived keepalived: 基于vrrp(虚拟冗余路由协议)的实现 virtual server: 对于IPVS vrrp_script: 调用外部脚本 ngin ...
- 【转】tf.train.MonitoredTrainingSession()解析
原文地址:https://blog.csdn.net/mrr1ght/article/details/81006343. 本文有删减. MonitoredTrainingSession定义 首先,tf ...
- 利用pil库处理图像
1关于PIL PIL(Python Image Library)是python的第三方图像处理库,但是由于其强大的功能与众多的使用人数,几乎已经被认为是python官方图像处理库了. 2PIL的主要功 ...
- post Cache
http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html#sec9.5 POST The POST method is used to request ...
- spring是什么?
spring是什么? 1.编程范式的实践 dsl.注解.aop技术,扩展java语言的表达能力: dsl:xml配置+注解配置,扩展工程的组织能力: 2.基础组件: 常用组件的便捷封装,方便进行二次开 ...