Python+Pytest+Allure+Yaml+Pymysql+Jenkins+GitLab接口自动化测试框架详解
这是一个使用Python进行接口自动化测试的示例框架。以下是一个简化的测试用例代码示例:
import allure
import pytest
import pymysql
import yaml
# 连接数据库获取测试数据
connection = pymysql.connect(host='localhost', user='user', password='passwd', db='test', charset='utf8mb4')
@allure.feature('接口测试') # 用于定义测试功能
class TestApi:
def get_data(self, case_id):
# 获取YAML文件中的测试数据
with open('test_data.yaml', 'r', encoding='utf-8') as file:
test_data = yaml.safe_load(file)
return test_data[case_id]
def get_result(self, case_id):
# 从数据库获取预期结果
with connection.cursor() as cursor:
sql = "SELECT result FROM test_cases WHERE id = %s"
cursor.execute(sql, case_id)
result = cursor.fetchone()
return result[0]
@allure.story('登录接口测试') # 用于定义测试历史
@pytest.mark.parametrize('case_id', [1], indirect=True)
def test_login(self, case_id):
# 执行测试
data = self.get_data(case_id)
# 发送请求并验证结果
# 假设response是接收到的响应
response = {} # 模拟接收到的响应
assert response == self.get_result(case_id)
# 关闭数据库连接
connection.close()
这段代码展示了如何使用Pytest、Allure、YAML以及Pymysql来构建一个接口自动化测试框架的基本元素。它演示了如何从YAML文件中加载测试数据,如何从数据库中获取预期结果,并如何使用Pytest的参数化功能来运行测试用例。最后,关闭了数据库连接。这个框架可以作为开发者构建自己接口自动化测试项目的参考。
评论已关闭