美文网首页
在Pycharm中搭建Pytest接口自动化测试框架

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

作者: Lxn的小二 | 来源:发表于2023-05-03 14:04 被阅读0次

    前言

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

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

    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框架进行接口自动化测试的基本技能。

    相关文章

      网友评论

          本文标题:在Pycharm中搭建Pytest接口自动化测试框架

          本文链接:https://www.haomeiwen.com/subject/hvnzjdtx.html