4.写测试用例Testcase

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了4.写测试用例Testcase相关的知识,希望对你有一定的参考价值。

参考技术A 格式关系如下所示:

如果 SUT (测试中的系统)准备就绪,最有效的方法是首先捕获 HTTP 流量,然后使用 HAR 文件生成测试用例。更多详细信息请参考 使用HAR文件生成测试用列(testcase) ,根据生成的 pytest testcase,您可以根据需要进行一些调整,因此需要了解 testcase 格式的详细信息。

每个 testcase 都是 HttpRunner 的一个子类,必须具有两个类属性: config 和 teststeps

HttpRunner3.x 最棒的特性之一是链式调用,您不需要记住任何测试用例格式的细节,当您在 IDE 中编写测试用例时,您可以得到智能完成。

每个测试用例都应该有一个配置部分,您可以在其中配置测试用例级别的设置。

指定测试用例名称。这将显示在执行日志和测试报告中。

指定 SUT 的公共模式和主机部分,例如 https://postman-echo.com 。如果指定了 base _ url,则 teststep 中的 url 只能设置相对路径部分。如果您想在不同的 SUT 环境之间进行切换,这尤其有用。

指定是否验证服务器的 TLS 证书。如果我们想要记录测试用例执行的 HTTP 流量,这尤其有用,因为如果 verify 没有设置或者设置为 True,就会发生 SSLError。

指定 testcase 的导出会话变量。将每个测试用例视为一个黑盒,config 变量是输入部分,config export 是输出部分。特别是,当一个测试用例在另一个测试用例的步骤中被引用,并且将被提取一些会话变量用于后续的测试步骤,那么提取的会话变量应该在配置导出部分中配置。

每个测试用例应该有一个或多个有序的测试步骤(List [ Step ]) ,每个步骤都对应于一个 API 请求或另一个测试用例引用调用。

注意: 为了简化,HttpRunner v2.x 中的 API 概念已被否定。您可以将 API 视为只有一个请求步骤的测试用例。

RunRequest 用于向 API 发出请求,并对响应进行提取或验证。
RunRequest 的参数名用于指定 teststep 名称,它将显示在执行日志和测试报告中。

指定 teststep 变量。每个步骤的变量是独立的,因此,如果您想在多个步骤中共享变量,您应该在配置变量中定义变量。此外,步骤变量将覆盖在配置变量中具有相同名称的变量。

指定 HTTP 方法和 SUT 的 url,它们对应于 requests.request 的方法和 url 参数。

为请求 url 指定查询字符串。这对应于 requests.request 的 params 参数。

为请求指定 HTTP 头。这对应于 requests.request 的头参数。

指定 HTTP 请求 cookie。这对应于 requests.request 的 cookie 参数。

指定 HTTP 请求体,它对应于 requests.request 的数据参数。

在 json 中指定 HTTP 请求体,它对应于 requests.request 的 json 参数。

用 jmespath 提取 JSON 响应体。

使用 jmespath 提取 JSON 响应体并使用期望值进行验证。

下面的图片显示了 HttpRunner 内置验证器。

在一个步骤中使用 RunTestCase 来引用另一个 testcase 调用。

RunTestCase 的参数名用于指定 teststep 名称,它将显示在执行日志和测试报告中。

与 RunRequest 的. with _ variables 相同。

指定引用的 testcase 类。

指定会话变量名称以便从引用的测试用例导出。导出的变量可以由后续的测试步骤引用。

接口测试---步骤2:写测试用例

用例写在TestCase类下

import unittest

from api_tools.api_request import HttpRequest    # 导入requests接口请求方法

class Test(unittest.TestCase):
        """写测试用例"""

        def test_casename(self):

            """给requests接口方法传入必要参数,并且比对结果是否与预期一致"""
            res = HttpRequest().http_request(method, url, data,auth,headers)
            self.assertEqual(期望结果, res.json()[实际结果], 提示信息)

 

以上是关于4.写测试用例Testcase的主要内容,如果未能解决你的问题,请参考以下文章

Python单元测试--unittest

python unittest--TestCase类总结4,skip跳过用例或者跳过测试类

Python之编写测试用例,unittest模块中的TestCase类中的六种断言方法,以及setUp()函数。

UI自动化:单元测试框架

登录功能通用测试用例设计

unittest介绍