B站首推!2023最详细自动化测试合集,小白皆可掌握,让测试变得简单、快捷、可靠https://www.bilibili.com/video/BV1ua4y1V7Db
目录
一、背景
二、准备工作
三、编写测试脚本
四、数据驱动测试
五、结果报告生成
六、总结
七、参考链接
一、背景
随着Web应用程序的快速发展,越来越多的应用程序需要与API进行交互。而为了保证API的质量和稳定性,接口自动化测试变得非常重要。本文将介绍如何使用Python进行接口自动化测试,以及如何使用一些流行的Python库进行数据驱动测试和结果报告生成。
二、准备工作
在开始编写测试脚本之前,我们需要安装一些必要的工具和库:
-
Python 2.7 或以上版本
-
requests 库:用于发送HTTP请求并处理响应。
-
unittest 库:用于编写和运行测试用例。
-
HTMLTestRunner 库:用于生成HTML格式的测试结果报告。
您可以使用pip命令在终端中安装这些库:
pip install requests
pip install unittest
pip install html-testRunner
三、编写测试脚本
以下是一个使用requests库编写的简单的接口测试脚本,它会向GitHub API发送一个GET请求,并检查响应是否正常:
import requests
import unittest
class TestGitHubAPI(unittest.TestCase):
def test_get_user(self):
response = requests.get('https://api.github.com/users/octocat')
self.assertEqual(response.status_code, 200)
self.assertEqual(response.json()['login'], 'octocat')
if __name__ == '__main__':
unittest.main()
在上面的代码中,我们定义了一个名为TestGitHubAPI的测试类,并编写了一个名为test_get_user的测试方法。该方法使用requests库发送一个GET请求,并检查响应状态码和返回的JSON数据是否符合预期。
四、数据驱动测试
如果您需要对多个测试用例进行测试,那么手动编写每个用例会变得非常繁琐。在这种情况下,您可以使用数据驱动测试来轻松管理测试用例。
以下是一个使用unittest框架和数据驱动测试的示例:
import requests
import unittest
from parameterized import parameterized
class TestGitHubAPI(unittest.TestCase):
@parameterized.expand([
("octocat", 200),
("nonexistentuser123", 404)
])
def test_get_user(self, username, status_code):
response = requests.get('https://api.github.com/users/{}'.format(username))
self.assertEqual(response.status_code, status_code)
if __name__ == '__main__':
unittest.main()
在上面的代码中,我们使用parameterized库将测试数据从测试逻辑中分离出来。我们使用@parameterized.expand装饰器来指定测试用例数据,并将它们传递给测试方法。这样,我们就可以更容易地添加或删除测试用例,而无需修改测试逻辑。
五、结果报告生成
最后,我们可以使用HTMLTestRunner库生成漂亮的测试结果报告。以下是一个示例代码:
import requests
import unittest
import HTMLTestRunner
class TestGitHubAPI(unittest.TestCase):
@parameterized.expand([
("octocat", 200),
("nonexistentuser123", 404)
])
def test_get_user(self, username, status_code):
response = requests.get('https://api.github.com/users/{}'.format(username))
self.assertEqual(response.status_code, status_code)
if __name__ == '__main__':
unittest.main(testRunner=HTMLTestRunner.HTMLTestRunner(output='test-reports'))
在上面的代码中,我们使用HTMLTestRunner库来生成测试结果报告。我们将unittest.main()函数的testRunner参数设置为HTMLTestRunner,并指定报告的输出目录。
六、总结
本文介绍了如何使用Python进行接口自动化测试。我们使用requests库发送HTTP请求并处理响应,使用unittest库编写和运行测试用例,使用parameterized库进行数据驱动测试,同时使用HTMLTestRunner库生成测试结果报告。通过这些工具和库的组合,我们可以轻松地编写、运行和管理接口自动化测试,从而提高应用程序的质量和稳定性。
七、参考链接
- requests官方文档:Requests: HTTP for Humans™ — Requests 2.29.0 documentation
- unittest官方文档:unittest — Unit testing framework — Python 3.11.3 documentation
- parameterized库GitHub仓库:GitHub - wolever/parameterized: Parameterized testing with any Python test framework
- HTMLTestRunner库GitHub仓库:GitHub - oldani/HtmlTestRunner: A Test Runner in python, for Human Readable HTML Reports
自动化测试学习步骤结构图:
自动化测试福利:
【测试交流群号】:574737577http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=mQ7BUegSKrQqXAznDodcBM2ejt9jh22V&authKey=pKW6wUN%2FVg35%2BqaxnE7NJ3I8H8UhaT%2FNBdK1YzcsNGQ3gXBdHrFFNOw2CSsXMREb&noverify=0&group_code=574737577