Python+Pytest框架,“api_key.py文件怎么编写“?

1、在"api_keyword"文件夹下新增"api_key.py"

import allure
import requests
import json
import jsonpath
from deepdiff import DeepDiff

from config import *

@allure.title("测试用例执行")
class ApiKey:
    @allure.step(">>>:开始发送GET请求")
    def get(self, url, params=None, **kwargs):
        """
        发送get请求
        :param url:接口请求url
        :param params:拼接URL的参数
        :param kwargs:其他的参数
        :return:返回请求后的数据
        """
        return requests.get(url=url, params=params, **kwargs)

    @allure.step(">>>:开始发送POST请求")
    def post(self, url, data=None, json=None, **kwargs):
        """
        发送post请求
        :param url:接口请求url
        :param data:data的请求数据
        :param json:json的请求数据
        :param kwargs:其他的参数
        :return:返回请求后的数据
        """
        res = requests.post(url=url, data=data, json=json, **kwargs)
        print(">>>:响应数据为:", res.json())
        return res

    @allure.step(">>>:开始提取JsonPath数据")
    def get_text(self, response, key):
        """
        提取Json当中的某个值
        :param response:需要提取的json数据,比如{"msg":"登录成功"}
        :param key:对应要提取的jsonpath
        :return:返回提取数据之后的第一个值
        """
        if isinstance(response, str):
            # 是字符串,就让它转一下类型
            response = json.loads(response)

        # print(">>>:开始提取JsonPath数据")
        value_list = jsonpath.jsonpath(response, key)
        print(">>>:提取的数据为:", value_list[0])
        return value_list[0]

    @allure.step(">>>:开始提取数据库数据")
    def get_sqlData(self,sqlValue):
        """
        :param sqlValue: sql,返回的数据是一个元祖
        """
        import pymysql
        # 1.配置数据库连接信息并连接
        connection = pymysql.connect(
            host=DB_HOST,
            port=DB_PORT,
            user=DB_USER,
            password=DB_PASSWORD,
            db=DB_NAME
        )
        # 2.创建游标对象,使用它进行操作
        cursor = connection.cursor()
        # 3.sql语句
        # sqlValue= 'select username from user where id="13";'
        # 4.使用游标对象去执行操作sql
        cursor.execute(sqlValue)
        # 5.得到结果集的下一行
        result = cursor.fetchone()
        print(result)
        # 6.关闭数据库连接
        cursor.close()
        return result[0]

    @allure.step(">>>:响应数据全量对比")
    def jsonDeepDiff(self, json1, json2, **other):
        """
        对比json数据的一致性
        :param json1:期望结果
        :param json2:实际结果
        :param other:你想要写的对应的规则
        :return:
        """
        res = DeepDiff(json1, json2, **other)
        if res == {}:
            return True
        else:
            return False

1、发送GET请求

2、发送POST请求

3、提取JsonPath数据

4、提取数据库数据

5、响应数据全量对比

搭建项目自动化框架需要进行以下步骤: 1. 安装 Docker 和 Jenkins Docker 是一个容器化引擎,可以快速构建、部署和运行应用程序。Jenkins 是一个流行的持续集成和持续交付工具,可以帮助你自动化构建、测试和部署应用程序。 2. 配置 Git 仓库 Git 是一个开源的分布式版本控制系统,可以帮助你管理代码版本,与团队协作。 3. 编写 Pytest 测试用例 Pytest 是一个流行的 Python 单元测试框架,可以帮助你编写高质量的测试用例。 4. 集成 Pytest 和 Allure 报告 Allure 是一个开源的测试报告框架,可以帮助你生成漂亮的测试报告,方便测试结果的分析和共享。 接下来是具体步骤: 1. 安装 Docker 和 Jenkins 在安装 Docker 之前,需要先安装 Docker 的依赖项: ```bash $ sudo apt-get install apt-transport-https ca-certificates curl gnupg lsb-release ``` 然后添加 Docker 的 GPG 密钥: ```bash $ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg ``` 接下来添加 Docker 的 apt 源: ```bash $ echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null ``` 然后更新 apt 缓存并安装 Docker: ```bash $ sudo apt-get update $ sudo apt-get install docker-ce docker-ce-cli containerd.io ``` 安装完成后,可以通过以下命令验证 Docker 是否安装成功: ```bash $ sudo docker run hello-world ``` 接下来安装 Jenkins,可以使用以下命令: ```bash $ sudo apt-get update $ sudo apt-get install openjdk-8-jdk $ wget -q -O - https://pkg.jenkins.io/debian-stable/jenkins.io.key | sudo apt-key add - $ sudo sh -c 'echo deb https://pkg.jenkins.io/debian-stable binary/ > /etc/apt/sources.list.d/jenkins.list' $ sudo apt-get update $ sudo apt-get install jenkins ``` 安装完成后,可以通过以下命令验证 Jenkins 是否安装成功: ```bash $ sudo systemctl status jenkins ``` 2. 配置 Git 仓库 首先需要在 Git 上创建一个项目,然后将项目克隆到本地: ```bash $ git clone https://github.com/your_username/your_project.git ``` 然后在 Jenkins 上配置 Git 仓库: 1. 打开 Jenkins 管理页面(默认地址为 http://localhost:8080); 2. 点击“New Item”创建一个新的项目; 3. 输入项目名称,并选择“Freestyle project”; 4. 在“Source Code Management”中选择“Git”; 5. 输入 Git 仓库的 URL 和凭据信息; 6. 配置其他选项,如构建触发器、构建环境等。 3. 编写 Pytest 测试用例 在项目中创建一个名为“tests”的文件夹,然后在该文件夹中编写测试用例。例如,创建一个名为“test_example.py”的文件,包含以下内容: ```python def test_example(): assert 1 + 1 == 2 ``` 4. 集成 Pytest 和 Allure 报告 首先需要安装 Pytest 和 Allure: ```bash $ pip install pytest pytest-allure-adaptor allure-pytest ``` 然后在项目中创建一个名为“reports”的文件夹,用于存储测试报告。 接下来,在 Jenkins 中配置 Pytest 和 Allure: 1. 打开 Jenkins 管理页面; 2. 点击“Manage Jenkins” -> “Global Tool Configuration”; 3. 在“Python installations”中配置 Python 的路径; 4. 在“Allure Commandline”中配置 Allure 的路径。 然后在 Jenkins 中创建一个构建步骤,执行以下命令: ```bash $ pytest --alluredir=reports $ allure generate reports --clean -o reports/html ``` 这个命令将运行 Pytest 测试用例,并生成 Allure 报告。最后,可以在 Jenkins 中配置“Publish Allure Report”插件,将测试报告发布到 Jenkins 上。 完成以上步骤后,就可以使用 Docker + Jenkins + Git + Pytest + Allure 搭建项目自动化框架了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值