在Pycharm中搭建Pytest接口自动化测试框架

您所在的位置:网站首页 pycharm无法导入cv2 在Pycharm中搭建Pytest接口自动化测试框架

在Pycharm中搭建Pytest接口自动化测试框架

2023-05-12 10:20| 来源: 网络整理| 查看: 265

前言

       本期是我们《保姆级Pytest接口自动化测试框架实战指南》系列中的核心功能,Pytest框架串联了整个自动化测试框架始终。        随着软件的不断复杂化,手动测试已经无法满足快速迭代和高质量的要求。所以自动化测试框架变得越来越重要,特别是Pytest,一个出色的Python单元测试框架。        本文将教你如何在Pycharm中使用Pytest框架进行接口自动化测试,主要分为以下几个部分:

环境准备 安装必要的插件 安装必要的插件 运行测试用例和报告生成 1. 环境准备

在开始之前,需要确保你掌握以下技术:

Python 3.x Pycharm IDE

除了Pycharm,还可以使用一些其他的编辑器用于编写代码:

Pycharm VS Code Sublime Text Atom 2. 安装必要的插件 2.1 Pytest

       Pytest是一个功能强大且可扩展的Python测试框架,可以用于编写各种类型的测试用例。相比其他测试框架,Pytest具有以下优点:

简单易学:使用简单而直观的API,易于入门。 自动化发现测试用例:Pytest可以自动发现测试用例并执行,无需手动管理测试套件。 参数化测试:Pytest可以轻松地使用参数化的方式运行测试用例,从而减少冗余代码。 断言支持:Pytest可以使用Python的assert语句进行断言,无需学习新的API。 多个插件扩展:Pytest拥有众多扩展插件,可以满足各种测试需求。

安装pytest插件的步骤如下:

1.打开Pycharm IDE。 2.点击“文件” -> “设置”,在左侧面板中选择“插件”。 3.在搜索框中输入“pytest”,然后点击“安装”按钮即可。

2.2 Pytest-html

       Pytest-html插件可以将Pytest测试结果以HTML格式呈现,使得测试报告更加美观易读。安装pytest-html插件的步骤如下:

1.打开Pycharm IDE。 2.点击“文件” -> “设置”,在左侧面板中选择“插件”。 3.在搜索框中输入“pytest-html”,然后点击“安装”按钮即可。

3. 编写测试用例 3.1 测试用例文件结构

       在编写测试用例之前,我们需要了解测试用例文件应该包括哪些内容。测试用例文件应包括以下三个部分:

3.1.1 导入库

       测试用例应该开始于导入所需的Python库。

import requests import json 3.1.2 定义测试函数

       测试用例文件应包括一个或多个测试函数。每个测试函数应以"test_"开头,并包含所需的断言语句。例如:

def test_response_code(): url = "http://localhost:8080/posts/1" response = requests.get(url) assert response.status_code == 200 其中,函数名称应该遵循以下规则: 函数名称应该清晰明了,能够表达被测试的功能或特性。 函数名称应该以“test_”开头,这是Pytest自动识别测试用例的规则。 函数名称可以使用下划线分隔单词。

       在上述代码中,url应该被替换为你要测试的接口URL地址。

3.1.3 定义测试用例

       测试用例文件应包括一个或多个测试函数。每个测试函数应以"test_"开头,并包含所需的断言语句。例如:

def test_response_code(): url = "http://localhost:8080/posts/1" response = requests.get(url) assert response.status_code == 200 其中,函数名称应该遵循以下规则: 函数名称应该清晰明了,能够表达被测试的功能或特性。 函数名称应该以“test_”开头,这是Pytest自动识别测试用例的规则。 函数名称可以使用下划线分隔单词。

       在上述代码中,url应该被替换为你要测试的接口URL地址。

3.2 编写测试用例

       在编写测试用例时,我们需要遵循以下规则:

3.2.1 函数名称

       测试函数应该以“test_”开头,这是Pytest自动识别测试用例的规则。例如:

def test_response_code(): ... 3.2.2 断言语句

       每个测试函数应包含所需的断言语句,用于验证接口返回值是否符合预期。例如:

assert response.status_code == 200 3.2.3 文件名称

       测试用例文件的命名应该以“test_”开头,以“_test.py”结尾。例如,“test_example.py”是一个有效的文件名。

3.2.4 用例名称

       每个测试函数应该具有一个描述性的名称,可以使用下划线分隔单词。例如:

def test_response_code(): ... def test_response_content(): ... 3.3 示例代码

       在Pycharm中创建一个新文件,并编写测试用例代码。以下是一个简单的示例:

import requests import json def test_response_code(): url = "http://localhost:8080/posts/1" response = requests.get(url) assert response.status_code == 200 def test_response_data(): url = "http://localhost:8080/posts/1" response = requests.get(url) data = response.json() assert data["title"] == "sunt aut facere repellat provident occaecati excepturi optio reprehenderit" def test_create_post(): url = "http://localhost:8080/posts" headers = {'Content-Type': 'application/json'} data = {"title": "Test Post", "body": "This is a test post", "userId": 1} response = requests.post(url, headers=headers, data=json.dumps(data)) assert response.status_code == 201 这个示例包括了三个测试用例: test_response_code:测试接口的响应状态码是否为200。 test_response_data:测试接口返回的数据是否正确。 test_create_post:测试创建新的文章是否成功。 3.4 运行测试用例

       完成测试用例的编写后,我们可以在Pycharm中运行测试用例。在Pycharm中右键点击测试用例文件,然后选择“Run 'pytest in'...”选项即可。

       也可以在脚本中通过主函数运行,在测试文件的末尾添加以下代码即可:

if __name__ == '__main__': pytest.main(["-s", "-v", "test_file.py", "--html=report.html"])

       其中,"-s"和"-v" 参数用于显示测试结果的详细信息,"test_file.py" 是测试文件名,"--html=report.html" 用于生成 HTML 格式的测试报告。        在运行测试用例时,Pytest会自动发现所有以“test_”开头的函数,并执行它们。如果所有的测试用例都通过,则测试结果将显示为“PASSED”,否则将显示为“FAILED”。

4. 生成测试报告

       使用pytest-html插件可以方便地在Pycharm中生成测试报告。以下是生成测试报告的步骤:

       在终端中安装pytest-html插件:

pip install pytest-html

       在运行测试用例时,添加参数“—html=report.html”来生成HTML格式的测试报告。例如:

pytest tests.py --html=report.html

       等待测试用例执行完毕后,在Pycharm项目文件夹下可以找到report.html文件,双击打开即可查看测试报告。

总结

       本文介绍了如何在Pycharm中使用Pytest框架进行接口自动化测试。

       首先需要准备Python和Pycharm环境,并安装必要的插件。然后编写测试用例,使用Pytest执行测试用例,并生成测试报告。通过这篇文章,相信你已经掌握了如何使用Pytest框架进行接口自动化测试的基本技能。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3