kaiyun全站网页版登录 python+pytest接口自动化之用例编写思路

发布于:25-02-22 播放次数:

前言

今天,我想与您谈论使用Pytest框架编写接口自动化测试以阐明编写接口自动化用例的想法。

我们在百度搜索天气查询,并将显示下图所示的结果:

编写接口测试用例的组成部分_接口的测试用例一般都怎么写_接口测试用例编写举例

接下来,我们以此天气查询接口为示例来编写接口测试案例脚本。

1。澄清测试对象

对于某个功能的接口测试,我们首先需要确定哪个接口被调用以实现此功能。该接口的特定信息(例如函数,协议,URLkaiyun全站网页版登录,请求方法,请求参数描述,响应参数描述等)可以通过开发提供的接口文档查看,也可以通过抓取数据包来获得接口文档)。只有在找到相应的接口(即测试对象)之后,我们才能以有目的的方式进行下一步。

1。显然开yun体育app官网网页登录入口,这里没有接口文档可以提供与接口相关的信息。我们甚至都不知道如何要求URL。因此,提琴手首先捕获数据包并获取接口信息。

接口的测试用例一般都怎么写_接口测试用例编写举例_编写接口测试用例的组成部分

通过捕获数据包,我们捕获了接口的信息,如下所示:

请求URL:

请求方法:获取请求参数:{“ query”:“ hangzhou,zhejiang”,“ srcid”:4982}

2。获取上述接口信息后,我们首先编写一个简单的脚本以请求接口,如下所示:

url = "https://weathernew.pae.baidu.com/weathernew/pc"
params = {
	"query": "浙江杭州天气",
	"srcid": 4982
}
res = requests.get(url=url, params=params)
print(res.status_code)
print(res.text)

运行代码并传递接口调试,可以获得结果,如下:

编写接口测试用例的组成部分_接口的测试用例一般都怎么写_接口测试用例编写举例

3。阐明要求并确定用例。

当我们对某个接口进行自动测试时,我们需要首先澄清需要验证用例的测试点。某些接口需要同时执行正验证和异常验证,而某些接口可能只需要在自动化过程中进行正向验证,而无需验证。

让我们分析示例中的天气查询界面,该示例主要有两个测试点:

2。写测试用例

编写测试用例时,我们需要封装代码,这些代码可以封装在测试类/方法和测试功能中。在Pytest中使用用例封装的命名方法。请找到文章以获取详细信息。

至于封装到类或功能中,实际上没有特定的要求。通常,可以将与同一方案或相同测试点相关的接口定义为类。

同时,用例还需要设置主张,以验证返回的内容是否为预期内容。必须断言测试案例,否则将毫无意义。

3。构建请求数据

转发请求,数据如下:

params = {
	"query": "浙江杭州天气",
    "srcid": 4982
}

异常请求,数据如下:

params = {
	"query": "头条号:测试架构师百里",
    "srcid": 4982
}

在调试和请求上面的接口时,我们已经获得了远期请求的结果,如上面的屏幕截图所示。

让我们看一下异常请求的结果,并为后续断言设置做准备,结果如下:

接口的测试用例一般都怎么写_编写接口测试用例的组成部分_接口测试用例编写举例

在发送异常请求后,返回的代码也为200。结果将表明尚未激活城市查询,并且window.tpldata内容尚未显示。

4。封装测试代码

这是相同接口的两个不同的测试用例。我们直接封装了一个测试类,该类专门用于测试接口。示例代码如下:

class TestWeather:
    '''
    校验百度天气查询接口:https://weathernew.pae.baidu.com/weathernew/pc
    '''
    def test_get_weather_normal(self):
        '''正向校验-查询存在的城市的天气'''
        url = "https://weathernew.pae.baidu.com/weathernew/pc"
        params = {
            "query": "浙江杭州天气",
            "srcid": 4982
        }
        res = requests.get(url=url, params=params)
    def test_get_weather_error(self):
        '''异常校验-查询不存在的城市的天气'''
        url = "https://weathernew.pae.baidu.com/weathernew/pc"
        params = {
            "query": "头条号:测试架构师百里",
            "srcid": 4982
        }
        res = requests.get(url=url, params=params)

请注意,该代码中没有任何断言云开·全站体育app登录,不能被视为完整的用例。在这里,我只是将主张放在下一步上解释过程,然后在分析后写出断言。

5。断言设置

断言,也就是说,检查结果是否是我们期望的。如何在Pytest中发表主张,请参阅文章Pytest-servions。

设置断言时,我们需要首先澄清检查哪些字段。一般而言,响应接口的代码需要主张,而status_code == 200表示接口请求已完成。然后主张其他必要的字段,以验证是否实现了接口函数。

从上述结果中,我们可以看到远期请求可以做出以下断言:

# 断言code是否等于200,存在则该断言通过
assert res.status_code == 200
# 断言结果中是否存在"window.tplData",存在则该断言通过
assert "window.tplData" in res.text

从上述结果中,我们可以看到例外请求可以断言如下:

# 断言code是否等于200,存在则该断言通过
assert res.status_code == 200
# 断言结果中是否存在"window.tplData",注意这里是不存在则该断言通过
assert "window.tplData" not in res.text
# 断言结果中是否存在"暂未开通此城市查询",存在则该断言通过
assert "暂未开通此城市查询" in res.text

3。执行脚本以获得测试结果

当使用PYTEST框架管理执行用例时,您需要先安装Pytest并将其导入模块。尚不清楚的学生可以查看我的一系列文章,所以我不会在这里解释太多。

完整的示例代码如下:

import requests
import pytest
class TestWeather:
    '''
    校验百度天气查询接口:https://weathernew.pae.baidu.com/weathernew/pc
    '''
    def test_get_weather_normal(self):
        '''正向校验-查询存在的城市的天气'''
        url = "https://weathernew.pae.baidu.com/weathernew/pc"
        params = {
            "query": "浙江杭州天气",
            "srcid": 4982
        }
        res = requests.get(url=url, params=params)
        # print(res.status_code)
        # print(res.text)
        assert res.status_code == 200
        assert "window.tplData" in res.text
    def test_get_weather_error(self):
        '''异常校验-查询不存在的城市的天气'''
        url = "https://weathernew.pae.baidu.com/weathernew/pc"
        params = {
            "query": "头条号:测试架构师百里",
            "srcid": 4982
        }
        res = requests.get(url=url, params=params)
        print(res.status_code)
        print(res.text)
        assert res.status_code == 200
        assert "window.tplData" not in res.text
        assert "暂未开通此城市查询" in res.text
        
if __name__ == '__main__':
    # 使用pytest执行用例
    pytest.main()

当然,由于这里共享URL,因此最好提取它,而不是为每个测试方法定义一次此变量,如下图所示:

编写接口测试用例的组成部分_接口的测试用例一般都怎么写_接口测试用例编写举例

执行结果如下:

编写接口测试用例的组成部分_接口测试用例编写举例_接口的测试用例一般都怎么写

四,摘要

对于单个接口自动测试用例,我们可以遵循上述步骤,也就是说,阐明测试对象 - >书面测试用例 - >书面测试脚本 - >执行脚本并获得测试结果。通过这些步骤,我们有一个编写自动化用例的基本思想(这对于形成我们的自动化测试思维非常重要),为我们后续的学习实践奠定了基础。

实际上,当使用编程语言自动化项目测试时,几乎不可能只有一个测试案例。因此,在多个测试用例的情况下,您需要如何管理用例,执行用例并获得测试结果?这是单元测试框架需要解决的问题。