zoukankan      html  css  js  c++  java
  • httprunner学习22-正则表达式提取(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>', 上海-悠悠 - 博客园]
    

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

  • 相关阅读:
    swiper把左右箭头放到外侧
    vue复制地址栏链接:clipboard
    移动端适配rem.js
    vue登录弹框
    vue使用vue-aplayer(还用了SiriWave波形动画插件)
    vue 锚点定位,并平滑过渡
    vue引入scss报错:scss版本太高
    Kylin |3.Cube的优化
    Kylin |2.ModuleProject
    算法| 高级动态规划
  • 原文地址:https://www.cnblogs.com/yoyoketang/p/11706392.html
Copyright © 2011-2022 走看看