HttpRunner学习4--使用正则表达式提取数据
前言
在HttpRunner中,我们可通过extract提取数据,当响应结果为 JSON 结构,可使用 content 结合 . 运算符的方式,如 content.code,用起来十分方便,但如果响应结果为 text/html 结构时,便不能这么用了。
这时候,我们能不能使用正则表达式来提取呢?答案是肯定的。
本人环境:HttpRunner V1.5.8
测试场景
在这里,我将访问 TesterHome 的首页,通过正则表达式来提取响应数据中的 title标题 ,下面是在浏览器中访问和Fiddler抓包的结果。


extract中正则提取和断言
从上面的抓包结果中,我们如果要提取 标题title 中的 TesterHome 关键字,可以使用正则表达式为:<title>(.+?)</title>。YAML格式的用例如下:
- test:
name: visit TesterHome
request:
url: https://testerhome.com/
method: GET
extract:
- title: <title>(.+?)</title>
validate:
- eq: [status_code, 200]
- eq: [$title, "TesterHome"]
使用正则提取的数据,放入参数 title 中,如果后面需要用到该参数,则通过 $title 来引用。
validate中使用正则
除了在 extract 提取响应数据时使用正则,我们也可以直接在断言时使用正则。YAML格式的用例如下:
- test:
name: visit TesterHome 2
request:
url: https://testerhome.com/
method: GET
validate:
- eq: [status_code, 200]
- eq: ['<title>(.+?)</title>', "TesterHome"]
我在这里使用正则时,若直接用 <title>(.+?)</title> 会报错,我们加上 单引号或双引号 即可,如 '<title>(.+?)</title>' 或 "<title>(.+?)</title>"。
完整的用例:
- config:
name: re test
- test:
name: visit TesterHome
request:
url: https://testerhome.com/
method: GET
extract:
- title: <title>(.+?)</title>
validate:
- eq: [status_code, 200]
- eq: [$title, "TesterHome"]
- test:
name: visit TesterHome 2
request:
url: https://testerhome.com/
method: GET
validate:
- eq: [status_code, 200]
- eq: ['<title>(.+?)</title>', "TesterHome"]
HttpRunner学习4--使用正则表达式提取数据的更多相关文章
- Qt正则表达式提取数据
这几天在上嵌入式课程设计,需要用到Qt,这个是信号与槽的,寒假的时候也简单学习了一些,但是没有怎么深入,又回过来看了看Qt,发现Qt的ui界面配置与Android的好像,当然Qt也可以拿来开发Andr ...
- httprunner学习22-正则表达式提取(extract)与校验(validate)
前言 有些接口返回的并不是json格式的内容,返回的是html或者xml格式的内容,这种就不能用前面的 content.的方法去提取了. httprunner 支持正则表达式提取(extract)参数 ...
- jmeter使用正则表达式提取数据
1.通过正则表达式提取到接口返回的中的某些数据.例如:success":true,"data":{"typeID":"(\w+)" ...
- Jmeter压测学习3---通过正则表达式提取token
上一个随笔记录的是用json提取器提取token,这个随笔记录用正则表达式提取token 一.添加正则表达式 登录右击添加->后置处理器->正则表达式提取器 正则提取器参数说明: 要检查的 ...
- HttpRunner学习7--引用CSV文件数据
前言 在之前的文章中,我们已经学习了 parameters 参数化,是在测试脚本中直接指定参数列表.这种方法简单易用,但如果我们的参数列表数据比较多,这种方法可能就不太适合了. 当数据量比较大的时候, ...
- python接口自动化测试十四: 用正则表达式提取数据
import requests import re url = 'xxxx' r = requests.post(url) # 正则公式: postid = re.findall(r"(.+ ...
- HttpRunner学习3--extract提取数据和引用
前言 在HttpRunner中,我们要想从当前 HTTP 请求的响应结果中提取参数,可以通过 extract 关键字来实现. 本人环境:HttpRunner V1.5.8 测试场景 在这里,我将以一个 ...
- JMeter学习-011-JMeter 后置处理器实例之 - 正则表达式提取器(三)多参数获取进阶引用篇
前两篇文章分表讲述了 后置处理器 - 正则表达式提取器概述及简单实例.多参数获取,相应博文敬请参阅 简单实例.多参数获取. 此文主要讲述如何引用正则表达式提取器获取的数据信息.其实,正则表达式提取器获 ...
- JMeter学习-009-JMeter 后置处理器实例之 - 正则表达式提取器(二)多参数获取
前文简述了通过后置处理器 - 正则表达式提取器 获取 HTTP请求 响应结果中的特定数据,未看过的亲,敬请参阅 JMeter学习-008-JMeter 后置处理器实例之 - 正则表达式提取器(一). ...
随机推荐
- Vue.js大屏数字滚动翻转效果
================================ 大屏数字滚动翻转效果来源于最近工作中element后台管理页面一张大屏的UI图,该UI图上有一个模块需要有数字往上翻动的效果,以下是最 ...
- python与redis交互及redis基本使用
Redis简介 Redis是一使用ANSI C语言编写.支持网络.可基于内存亦可持久化的日个开源的志型.Key-Value数据库,并提供多种语言的API. 从2010年3月15日起,Redis的开发工 ...
- 《手把手教你》系列练习篇之5-python+ selenium自动化测试(详细教程)
1. 简介 今天我们继续前边的练习,学习和练习一下:如何使用webdriver方法获取操作复选框-CheckBox.测试不同的分辨率.如何断言title.如何获取某一个元素的text属性值等等,这些 ...
- OSI层次模型
ISO:国际标准化组织 层(layer):描述所有的有效的通讯过程,并把逻辑上的组叫做层. 分层优点: 促进标准化工作,允许各个供应商进行开发 各层之间相互独立,把网络操作分成低复杂度性单元 灵活性好 ...
- 【Android - 控件】之V - DrawerLayout的使用
DrawerLayout是Android V4包中的一个布局控件,用来实现一个抽屉样式的布局. DrawerLayout通过设置子视图的layout_gravity来决定子视图停靠在屏幕的哪个边缘外侧 ...
- jsp实现增加数据功能
1. 环境的搭建 软件 数据库 sql myeclipse 8.0 tomcat 6.0 2. 安装完 myeclipse 配置下 部署tomcat 6.0 =1=> =2=> 新 ...
- js-Date()对象,get/setFullYear(),getDay()编程练习
啥也不说!看代码 主要注意:getday()方法中原理!!! <!DOCTYPE html> <html lang="en"> <head> & ...
- Python列表中的字典按照该字典下的键值进行排序
列表中的字典按照该字典下的键值进行排序 这算是排序中比较复杂的一种情况吧,多重嵌套,按照某种规则进行排序.如下面这个json(注:这里这是该列表中的一个项): [ { "stat" ...
- MyCat学习 ------分库分表 随笔
垂直切分.水平切分 1.垂直分库,解决库中表太多的问题. 2.垂直分表,解决表中列太多的问题.例如 商品表 包含 产地.二维码 .时间.价格.各个列.分为不同的小表. 水平切分, 大数据表拆分为小表 ...
- ios开发之block的使用,及注意事项
转自:http://my.oschina.net/u/1432769/blog/390401 Block作为C语言的扩展,并不是高新技术,和其他语言的闭包或lambda表达式是一回事.需要注意的是由于 ...