httprunner学习21-正则表达式提取(extract)与校验(validate)

前言

有些接口返回的并不是json格式的内容,返回的是html或者xml格式的内容,这种就不能用前面的 content.的方法去提取了。
httprunner 支持正则表达式提取(extract)参数,也支持正则表达式校验(validate)

返回html

比如我请求博客园的首页https://www.cnblogs.com/yoyoketang/,返回的是应该html格式的内容

接下来我要提取html里面的 <title>上海-悠悠 - 博客园</title> 中间的文字 上海-悠悠 - 博客园

正则提取参数(extract)

正则提取语法 ‘<title>(.+?)</title>‘, 提取出来给变量title,用例保存为 test_blog_yoyo.yml

# # 上海悠悠,QQ交流群:750815713
- config:
    name: test demo

- test:
    name: test demo case1
    request:
        url: https://www.cnblogs.com/yoyoketang/
        method: GET
        headers:
            User-Agent: Fiddler
            Content-Type: application/json
        verify: false
    extract:
        - title: '<title>(.+?)</title>'
    validate:
        - eq: [status_code, 200]

用debug模式运行

hrun test_blog_yoyo.yml --log-level debug

用 debug 模式可以看到参数提取成功了,后面如果用例有用到这个参数,可以用 $title 引用

正则表达式校验(validate)

对返回的html内容,需要校验结果。之前json格式是通过 content. 的方式去提取,正则表达式提取直接写正则语法就可以了。
用例保存为 test_blog_yoyo.yml

# # 上海悠悠,QQ交流群:750815713
- config:
    name: test demo

- test:
    name: test demo case1
    request:
        url: https://www.cnblogs.com/yoyoketang/
        method: GET
        headers:
            User-Agent: Fiddler
            Content-Type: application/json
        verify: false
    extract:
        - title: '<title>(.+?)</title>'
    validate:
        - eq: [status_code, 200]
        - eq: ['<title>(.+?)</title>', 上海-悠悠 - 博客园]

运行用例就可以看到校验成功了,如果有多个地方需要校验,那就校验多次。

原文地址:https://www.cnblogs.com/yoyoketang/p/11706392.html

时间: 2024-12-24 15:58:42

httprunner学习21-正则表达式提取(extract)与校验(validate)的相关文章

JMeter学习-009-JMeter 后置处理器实例之 - 正则表达式提取器(二)多参数获取

前文简述了通过后置处理器 - 正则表达式提取器 获取 HTTP请求 响应结果中的特定数据,未看过的亲,敬请参阅 JMeter学习-008-JMeter 后置处理器实例之 - 正则表达式提取器(一). 此文主要对正则表达式提取器的 正则表达式.模板.匹配数字,三者的关系,做进一步的讲解. 截取商品列表响应结果数据中的一段商品数据如下所示: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 {     "s

JMeter学习-008-JMeter 后置处理器实例之 - 正则表达式提取器(一)概述及简单实例

上文我们讲述了如何对 HTTP请求 的响应数据进行断言,以判断响应是否符合我们的预期,敬请参阅:JMeter学习-007-JMeter 断言实例之一 - 响应断言 那么我们如何获取 HTTP请求 响应结果中的数据呢?此文以获取类目 手机数码-手机通讯-苹果 结果列表中的第一个商品的系统编号为例演示(脚本基于上篇文章,请知悉). 如下为请求响应数据中的部分数据,我们最终要获取的数据为 "sysNo": "2142717" 中的 2142717. 1 2 3 4 5 6

JMeter学习-011-JMeter 后置处理器实例之 - 正则表达式提取器(三)多参数获取进阶引用篇

前两篇文章分表讲述了 后置处理器 - 正则表达式提取器概述及简单实例.多参数获取,相应博文敬请参阅 简单实例.多参数获取. 此文主要讲述如何引用正则表达式提取器获取的数据信息.其实,正则表达式提取器获取的数据,均可看做一个变量(单个数据,此处指所需获取的测试相关数据)或数组(多个数据),通过引用变量或者数组的数据,达到应用其数据的目的.下面针对此两种方式进行介绍. 第一种:单数据变量 但数据变量的应用比较简单,同我们日常 shell 脚本引用变量相同,引用样式:引用名称.例如要引用下图中的变量,

requests+正则表达式提取猫眼电影top100

1 #requests+正则表达式提取猫眼电影top100 2 import requests 3 import re 4 import json 5 from requests.exceptions import RequestException 6 from multiprocessing import Pool 7 8 def get_one_page(url): 9 headers = {'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64)

Linux学习之正则表达式&grep&egrep

我们经常需要在文档中搜索符合自己要求的内容,这些部分可能分散在文档的各个位置,各个角落.可以利用关键字例如/keyword或者?keyword一个一个的搜索,还有我可能不止想搜索关键字,而是指定一个范围,怎样操作?而且怎样把这些搜索到的内容集中地显示出来?使用正则表达式搜索字串的grep命令和egrep命令就可以满足我们的这个要求. 正则表达式(Regular Expression)是一种字符书写的模式,以行为单位进行字符的处理,透过一些特殊字符的辅助,利用这种模式可以轻易地达到对字符的搜索.删

jmeter正则表达式提取 引用

jmeter正则表达式token提取 例: 添加正则 配置 token正则表达式:"token":"(.+?)" 模板:$1$ 添加信息头管理器进行配置 需要token得地方输入 ${token} 就可以了 如果获取 返回值 只有数字得 且不带 ""得 正则表达式:"sysId":([0-9]*?), 校验正则表达式可通过 请求值 进行校验 原文地址:https://www.cnblogs.com/wangyinghao/p/

Jmeter之正则表达式提取获取数组类型数据

前言 在之前,我们已经学会了Jmeter正则表达式提取器提取某个数据,还没掌握的小伙伴可以翻看我之前写的随笔Jmeter之正则表达式提取器,今天我们来学习一下怎么利用正则表达式提取器获取数组类型的数据,多用于列表信息数据的获取. 一:添加唯品会商城http请求,我们要提取的是商城的商品类型 二:添加后置处理器-正则表达式提取器,引用名称为menu-title 三:添加取样器-Debug Sampler,查看是否获取到数组类型的数据 原文地址:https://www.cnblogs.com/zha

httprunner学习26-cookies关联(403 Forbidden问题解决)

前言 在使用httprunner写接口自动化用例时,遇到有些接口需要用到cookies,如果cookie没关联起来的话,会出现403 Forbidden的问题 问题描述 用httprunner写了个网页的登录用例,以下是相关的脚本参考test_cookie_demo.yml # 作者:上海-悠悠 qq交流群:874033608 - config: name: test login api demo variables: {} request: base_url: http://49.235.x.

PHP正则表达式提取html超链接中的href地址

用php的正则表达式相关函数,实现提取html超链接<a href="地址"></a>中的地址 <?php $preg='/<a .*?href="(.*?)".*?>/is'; $str ='<a href="链接1">URLNAME</a>文本段1<a href="链接2" target="_blank">URLNAME<