httprunner(5)编写测试用例「建议收藏」

httprunner(5)编写测试用例「建议收藏」编写测试用例HttpRunnerv3.x支持三种测试用例格式pytest,YAML和JSON。官方强烈建议以pytest格式而不是以前的YAML/JSON格式编写和维护测试用例格式关系如下图所示

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

编写测试用例

HttpRunner v3.x支持三种测试用例格式pytestYAMLJSON。官方强烈建议以pytest格式而不是以前的YAML/JSON格式编写和维护测试用例
格式关系如下图所示:
httprunner(5)编写测试用例「建议收藏」
 

图文解析:

1.postman收集的用例,curl命令行、抓包工具charles/fiddler生成的har,都转换为JSON格式
2.Web平台中的JSON格式用例也被收集
3.YAML文件与JSON格式相互转换
4.最后将所有的JSON格式文件转换为py文件,用pytest去执行用例
最后都是生成pytest去执行用例,之前就一直用的pytest框架,所以本人还是很喜欢httprunner的设计的
 

用例结构

上篇文章将百度的接口转换成pytest,如下:

from httprunner import HttpRunner, Config, Step, RunRequest, RunTestCase


class TestCaseBaidu(HttpRunner):

    config = Config("testcase description").verify(False)

    teststeps = [
        Step(
            RunRequest("/")
            .get("https://www.baidu.com/")
            .with_headers(
                **{
                    "Host": "www.baidu.com",
                    "Connection": "keep-alive",
                    "Cache-Control": "max-age=0",
                    "sec-ch-ua": '"Chromium";v="88", "Google Chrome";v="88", ";Not A Brand";v="99"',
                    "sec-ch-ua-mobile": "?0",
                    "Upgrade-Insecure-Requests": "1",
                    "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 11_1_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.146 Safari/537.36",
                    "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9",
                    "Sec-Fetch-Site": "none",
                    "Sec-Fetch-Mode": "navigate",
                    "Sec-Fetch-User": "?1",
                    "Sec-Fetch-Dest": "document",
                    "Accept-Encoding": "gzip, deflate, br",
                    "Accept-Language": "zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7",
                    "Cookie": "PSTM=1610459846; BAIDUID=A40AD6AD806FBBED1033903732FFA453:FG=1; BD_UPN=123253; BIDUPSID=898B917A8EF92E036B0F06DC792638A1; __yjs_duid=1_c391922164c20246fd49e4ad821d46c41610613507042; BDORZ=B490B5EBF6F3CD402E515D22BCDA1598; H_PS_PSSID=33423_33513_33403_33273_33594_33585_26350_33568; delPer=0; BD_CK_SAM=1; PSINO=5; BAIDUID_BFESS=A40AD6AD806FBBED1033903732FFA453:FG=1; COOKIE_SESSION=86630_1_9_6_41_5_0_0_8_2_1_0_0_0_71_0_1612340974_1611912344_1612427533%7C9%23262013_235_1611912339%7C9; BD_HOME=1; ZD_ENTRY=baidu; BA_HECTOR=20ag2180aga18k21mm1g1pegu0r",
                }
            )
            .with_cookies(
                **{
                    "PSTM": "1610459846",
                    "BAIDUID": "A40AD6AD806FBBED1033903732FFA453:FG=1",
                    "BD_UPN": "123253",
                    "BIDUPSID": "898B917A8EF92E036B0F06DC792638A1",
                    "__yjs_duid": "1_c391922164c20246fd49e4ad821d46c41610613507042",
                    "BDORZ": "B490B5EBF6F3CD402E515D22BCDA1598",
                    "H_PS_PSSID": "33423_33513_33403_33273_33594_33585_26350_33568",
                    "delPer": "0",
                    "BD_CK_SAM": "1",
                    "PSINO": "5",
                    "BAIDUID_BFESS": "A40AD6AD806FBBED1033903732FFA453:FG=1",
                    "COOKIE_SESSION": "86630_1_9_6_41_5_0_0_8_2_1_0_0_0_71_0_1612340974_1611912344_1612427533%7C9%23262013_235_1611912339%7C9",
                    "BD_HOME": "1",
                    "ZD_ENTRY": "baidu",
                    "BA_HECTOR": "20ag2180aga18k21mm1g1pegu0r",
                }
            )
            .validate()
            .assert_equal("status_code", 200)
            .assert_equal('headers."Content-Type"', "text/html;charset=utf-8")
        ),
    ]


if __name__ == "__main__":
    TestCaseBaidu().test_start()

每个用例都是HttpRunner的子类,且必须包含属性:config和teststeps。

  • config:配置测试用例,包含 base_url, verify, variables, export
  • teststeps:测试步骤的列表,每个步骤都对应一个API请求或调用另一个测试用例,此外还支持variables/extract/validate/hooks创建极其复杂的测试用例
     

链式调用

HttpRunner v3.x最重要的功能之一就是支持链式调用,使用链式调用,不需要记住任何测试用例的信息,在IDE中编写测试用例时就可以智能完成
httprunner(5)编写测试用例「建议收藏」
httprunner(5)编写测试用例「建议收藏」

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/164980.html原文链接:https://javaforall.net

(0)
上一篇 2022年7月28日 下午5:00
下一篇 2022年7月28日 下午5:16


相关推荐

  • python深拷贝和浅拷贝的使用场景_Python深拷贝和浅拷贝使用方法

    python深拷贝和浅拷贝的使用场景_Python深拷贝和浅拷贝使用方法Python 深拷贝和浅拷贝使用方法发布时间 2020 06 0616 52 01 来源 亿速云阅读 182 这篇文章运用了实例代码展示 Python 深拷贝和浅拷贝使用方法 代码非常详细 可供感兴趣的小伙伴们参考借鉴 希望对大家有所帮助 一 浅拷贝所谓浅拷贝 指的是对于某个对象 虽然创建了与该对象具有相同值的另一个对象 但是 这两个对象內部嵌套的对应子对象全都是同一个对象 简单地说 外部进行了拷贝 内部

    2026年3月17日
    1
  • ringbuffer的常规用法_c语言fputs

    ringbuffer的常规用法_c语言fputs一、ringBuffer介绍ringBuffer称作环形缓冲,也有叫circleBuffer的。就是取内存中一块连续的区域用作环形缓冲区的数据存储区。这块连续的存储会被反复使用,向ringBuffer写入数据总是从写指针的位置开始,如写到实际存储区的末尾还没有写完,则将剩余的数据从存储区的头开始写;从该ringBuffer读出数据也是从读指针的位置开始,如读到实际存储区的末尾…

    2025年10月25日
    5
  • Android应用程序开发「建议收藏」

    Android应用程序开发「建议收藏」Android应用程序开发 第一章Android应用初体验1.1应用基础activity是AndroidSDK中Activity类的一个具体实例,负责管理用户与信息屏的交互。应用的功能是通过编写一个个Activity子类来实现的。布局定义了一系列用户界面对象以及它们显示在屏幕上的位置。组成布局的定义保存在XML文件中。…

    2022年6月29日
    30
  • 下面哪几个符号是linux通配符_什么是通配符,有什么作用

    下面哪几个符号是linux通配符_什么是通配符,有什么作用linux通配符含义:.当前目录****..当前目录的上一级目录*****通配符,代表任意0个或多个字符*****?通配符,代表重复0个或一个0前面的字符:连续不同命令的分隔符*****#配置文件注释*****|管道*****~用户的家目录*****-上一次的目录*****$变量前需加的符号/路径分隔符>或1…

    2026年1月26日
    8
  • Pytest(6)重复运行用例pytest-repeat[通俗易懂]

    Pytest(6)重复运行用例pytest-repeat[通俗易懂]前言平常在做功能测试的时候,经常会遇到某个模块不稳定,偶然会出现一些bug,对于这种问题我们会针对此用例反复执行多次,最终复现出问题来。自动化运行用例时候,也会出现偶然的bug,可以针对单个用例,

    2022年7月31日
    7
  • ER图(实体-联系图)「建议收藏」

    ER图(实体-联系图)「建议收藏」概念E-R图也称实体-联系图(EntityRelationshipDiagram),提供了表示实体类型、属性和联系的方法,用来描述现实世界的概念模型。构成ER图有实体(entity)、属性(attribute)、关系(relationship)三部分。用“矩形框”表示实体型,矩形框内写明实体名称;用“椭圆框”表示实体的属性,将属性名记入框中;用”菱形框“表示实体型之间的关系,在菱形…

    2026年2月17日
    5

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号