httprunner(8)用例调用-RunTestCase[通俗易懂]

httprunner(8)用例调用-RunTestCase[通俗易懂]前言一般我们写接口自动化的时候,遇到复杂的逻辑,都会调用API方法来满足前置条件,Pytest的特性是无法用例之间相互调动的,我们一般只调用自己封装的API方法。而httprunner支持用例之间

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

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

前言

一般我们写接口自动化的时候,遇到复杂的逻辑,都会调用API方法来满足前置条件,Pytest的特性是无法用例之间相互调动的,我们一般只调用自己封装的API方法。
而httprunner支持用例之间的调用,通过RunTestCase对其他测试用例进行调用,并且还可以导出用例中你所需要的变量,来满足后续用例的的运行。
 

RunTestCase

RunTestCase 在一个步骤中用于引用另一个测试用例调用。

 teststeps = [
        Step(
            RunTestCase("request with functions")
            .with_variables(
                **{"foo1": "testcase_ref_bar1", "expect_foo1": "testcase_ref_bar1"}
            )
            .call(RequestWithFunctions)
            .export(*["foo3"])
        ),
        Step(
            RunRequest("post form data")
            .with_variables(**{"foo1": "bar1"})
            .post("/post")
            .with_headers(
                **{
                    "User-Agent": "HttpRunner/${get_httprunner_version()}",
                    "Content-Type": "application/x-www-form-urlencoded",
                }
            )
            .with_data("foo1=$foo1&foo2=$foo3")
            .validate()
            .assert_equal("status_code", 200)
            .assert_equal("body.form.foo1", "bar1")
            .assert_equal("body.form.foo2", "bar21")
        ),
    ]

 

RunTestCase(name)

用于指定测试步骤名称,该名称将显示在执行日志和测试报告中。

RunTestCase("request with functions")

 

.with_variables

与RunRequest里的用法相同
 

.call

指定你要引用的testcase类名称

.call(RequestWithFunctions)

调用RequestWithFunctions类
 

.export

指定要导出的变量(可以指定多个),后续的测试步骤可以引用导出的变量

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

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • forkjoin用法_java fork join

    forkjoin用法_java fork join目录前言前言ForkJoin是JDK1.7加入的多线程并行处理框架。ForkJoin使用`分而治之`的思想,把一个大任务拆分成一个个小任务,然后再聚合,得到最终结果。这有点像Hadoop中的MapReduce。还支持工作窃取。

    2022年9月20日
    0
  • shell循环语句

    shell循环语句1、for循环语法:for变量in值列表/seq(2210)do命令序列done———————–for((初值;条件;步长))do命令序列done————————for变量in{…}do命令序列done示例:循环创建10个系统账户示例2:批量创建用户用户名存放在users.txt的文件,每…

    2022年7月24日
    7
  • Ubuntu14.04使用DEB安装Mysql5.7

    Ubuntu14.04使用DEB安装Mysql5.7基于Debian的mysql5.7软件包安装(ubuntu14.0464bit)

    2022年6月3日
    64
  • C++常见几种输入方法评测(int && long long)

    C++常见几种输入方法评测(int && long long)

    2021年9月27日
    42
  • CLion2021.4 Ubuntu 激活码_通用破解码「建议收藏」

    CLion2021.4 Ubuntu 激活码_通用破解码,https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月16日
    178
  • 异步调用的理解

    异步调用的理解1.分清异步/同步,阻塞/非阻塞。首先讲下个人对异步和同步,阻塞和非阻塞的概念的理解。关于这个概念看了许多解释,都是似是而非,并不能完全get到点。个人认为从进程间通信的角度理解比较好,在《操作系统》中关于的部分是这样解释的:进程间的通信时通过send()和receive()两种基本操作完成的。具体如何实现这两种基础操作,存在着不同的设计。 消息的传递有可能是阻塞的或非阻塞的…

    2022年7月27日
    3

发表回复

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

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