介绍Python+pytest自动化技术测试函数测试类测试标准的封装形式
我是本际云服务器推荐网的小编小本本,今天想跟大家聊聊Python+pytest接口自动化中测试程序开展封装形式。只有把测试程序开展封装形式,才会被测试框架鉴别实行。

功能测试封装形式的基本标准
功能测试的封装形式主要有两种,测试函数和测试类。测试函数是1个测试用例,测试类中定义好几个测试标准,是个测试用例集。
pytest中测试函数或测试标准的命名必须以test开始,测试类名必须以Test开始。对于单插口测试,一个测试函数对应一个接口请求。对于多插口部分,需要将多个接口请求封装在同一个测试函数或测试类中,以便于整体测试。
测试类/方式的封装形式
测试类是一个测试用例集,每个测试标准对应一个功能测试。其中测试类的命名必须以Test开始,测试标准的命名必须以test开始。在一个测试类中,定义好的测试标准一般涵盖了整个功能测试所需要测试的插口。
一个测试类中,测试标准的顺序可以按照需要进行排列,以便于测试工程师进行整体验证。
示例代码
以下是一份完整的示例代码,供大家参考:
import requests
import pytest
import json
def test_get_home():
"""
请求首页接口
:return:
"""
headers = {
"user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.51 Safari/537.36"
}
url = "https://www.cnblogs.com/lfr0123/"
res = requests.get(url=url, headers=headers)
# 断言,判断返回结果的code是否等于200,当然实际接口测试中一般返回结果中还会有别的字段需要断言
assert res.status_code == 200
class TestLogin:
"""
登录接口校验
"""
url = "http://127.0.0.1:5000/login"
headers = {"Content-Type": "application/json;charset=utf8"}
def test_login_normal(self):
"""正确用户名、正确密码登录"""
data = {
"username": "AndyLiu",
"password": "123456"
}
res = requests.post(url=self.url, json=data, headers=self.headers)
# 断言
assert res.status_code == 200
assert json.loads(res.text)["token"]
def test_login_error(self):
"""正确用户名、错误密码登录"""
data = {
"username": "AndyLiu",
"password": "111111"
}
res = requests.post(url=self.url, json=data, headers=self.headers)
# 断言
assert res.status_code == 200
assert not json.loads(res.text)["token"]
if __name__ == '__main__':
pytest.main()
在代码示例中,我们定义了两个测试标准,分别是test_login_normal和test_login_error,而测试类的命名为TestLogin。
结论
测试函数和测试类/测试标准是实现Python+pytest自动化技术测试的基本封装形式。在命名方式上有所不同,但封装形式的基本原则是一致的。
通过将函数公式或方式看作是1条功能测试,我们可以将测试类视为带有1条或好几条功能测试的功能测试集,类中的每一个方式相匹配1条功能测试。
在编写测试类时,需要符合特定的命名规则,以便于测试框架鉴别实行。
希望以上内容对您有所帮助。
原创文章,作者:小编小本本,如若转载,请注明出处:https://www.benjiyun.com/yunzhujiyunwei/vps-yunwei/5776.html
