如何使用pytest进行自动化测试?
点击文末小卡片免费获取软件测试全套资料资料在手涨薪更快Pytest作为广泛使用的Python测试框架之一可以用于单元测试、功能测试、性能测试等场合。自动化测试是功能测试的一种形式可以使用Pytest编写并管理自动化测试用例再执行相应的自动化测试。功能测试通常包括接口测试和Web测试两种类型任何一个测试类型都可以通过Pytest框架来实现。本文以接口测试为例讲解如何使用Pytest进行自动化测试。如果想要进行Web自动化测试只需要将代码中涉及接口测试API改为适用于Web自动化测试的API即可而整体框架与执行方式则基本一致。1. 编写测试用例1编写简单的测试用例假设我们想要测试百度首页API接口用户发出的请求是否合法并检查响应文本是否包含字符串、“百度一下”。代码实例import requests def test_baidu(): # 发送API请求 response requests.get(https://www.baidu.com) # 判断响应状态码及响应文本是否符合预期结果。 assert response.status_code 200 assert 百度一下 in response.text上述代码中定义了test_baidu()作为测试函数名它是一个基本测试用例。在这个示例用例中代码会向API发送GET请求并断言响应的状态码为200且响应文本中包含“百度一下”这几个关键字。2编写参数化测试用例在实际测试中通常需要对多组数据进行测试。这时参数化测试用例就派上用场了。它可以轻松地对多组数据进行测试避免手动重复编写测试用例。代码实例import requests import pytest # 声明数据 data [ {url: https://www.baidu.com, expected: 百度一下}, {url: https://cn.bing.com/, expected: bing} ] pytest.mark.parametrize(case, data) def test_web(case): url case[url] expected case[expected] # 发送API请求并断言响应的状态码为200并检查响应文本是否符合预期结果 response requests.get(url) assert response.status_code 200 assert expected in response.text上述代码中使用pytest.mark.parametrize来实现参数化。其中“case”是参数名称。“data”列表内包含了多组测试数据。通过for循环遍历每一组测试数据并参考预置的策略执行具体的测试任务。2. 运行测试用例用例编写完成后一定要进行自测保证测试用例测试结果的准确性和一致性测试用例本身没有问题方可接入自动化测试。Pytest来执行测试用例非常简单只需要在命令行中输入pytest即可3. 查看测试结果所有测试用例执行完成后pytest会给出测试结果若用例都执行通过测试结果会显示如下信息若有测试用例未能通过执行结果会给出失败消息和失败原因测试人员需要根据测试结果找到执行失败的测试用例并对其进行分析判断是测试用例本身的问题还是发现了程序的bug。使用pytest做自动化测试编写测试用例需要遵循最佳的代码规范并且考虑到各种边界情况和异常情况。同时善于使用参数化和其他高级功能提高自动化测试的可靠性、可维护性保证自动化测试的顺畅执行。最后感谢每一个认真阅读我文章的人礼尚往来总是要有的虽然不是什么很值钱的东西如果你用得到的话可以直接拿走这些资料对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库这个仓库也陪伴我走过了最艰难的路程希望也能帮助到你凡事要趁早特别是技术行业一定要提升技术功底。