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 后置处理器实例之 - 正则表达式提取器(一). ...
随机推荐
- 百度杯 十二月 what_the_fuck
对于这道题,我还真的想说 what_the_fuck !! 这道题拿到就只发觉一个格式化字符串漏洞,其他的就找不到了 . unsigned __int64 sub_4008C5() { char s; ...
- 程序员用于机器学习编程的Python 数据处理库 pandas 进阶教程
数据访问 在入门教程中,我们已经使用过访问数据的方法.这里我们再集中看一下. 注:这里的数据访问方法既适用于Series,也适用于DataFrame. **基础方法:[]和. 这是两种最直观的方法,任 ...
- Java并发之synchronized关键字和Lock接口
欢迎点赞阅读,一同学习交流,有疑问请留言 . GitHub上也有开源 JavaHouse,欢迎star 引用 当开发过程中,我们遇到并发问题.怎么解决? 一种解决方式,简单粗暴:上锁.将千军万马都给拦 ...
- vue通过控制boolean值来决定是否添加class类名
vue通过控制boolean值来决定是否添加class类名
- Java 理论与实践: 处理 InterruptedException【转】
这样的情景您也许并不陌生:您在编写一个测试程序,程序需要暂停一段时间,于是调用Thread.sleep().但是编译器或 IDE 报错说没有处理检查到的InterruptedException.Int ...
- 【Android - IPC】之ContentProvider简介
1.Content Provider简介 Content Provider是Android中提供的一种专门用于不同应用之间进行数据共享的方式,从这一点来看,它天生就适合IPC(Inter-Proces ...
- Vue项目功能插件
项目功能插件 vue-router { path: '/', name: 'home', // 路由的重定向 redirect: '/home' } { // 一级路由, 在根组件中被渲染, 替换根组 ...
- C语言l博客作业05
问题 回答 这个作业属于哪个课程 C语言程序设计ll 这个作业要求在哪里 https://edu.cnblogs.com/campus/zswxy/SE2019-2/homework/9830 我在这 ...
- 小白的springboot之路(四)、mybatis-generator自动生成mapper和model、dao
0-.前言 在用mybatis开发项目中,数据库动辄上百张数据表,如果你一个一个去手动编写,比较耗费时间:还好,我们有mybatis-generator插件,只需简单几步就能自动生成mybatis的m ...
- 【搞定面试官】try中有return,finally还会执行吗?
本篇文章我们主要探讨 一下如果try {}语句中有return,这种情况下finally语句还会执行吗?其实JVM规范是对这种情况有特殊规定的,那我就先上代码吧! public class Final ...