统计测试结果的代码实现接昨天

简介: 统计测试结果的代码实现接昨天

要在测试报告中添加统计测试用例失败以及失败原因的功能,你可以对测试用例执行过程中的断言进行扩展,以捕获失败的断言并记录失败原因。然后,将这些信息添加到测试报告中的适当部分。


以下是一个示例:

```python
import json
import csv
import requests
import unittest
import HTMLTestRunner
class APITestCase(unittest.TestCase):
def setUp(self):
# 初始化测试环境
self.base_url = "http://api.example.com"
self.headers = {"Content-Type": "application/json"}
def tearDown(self):
# 清理测试环境
pass
def test_api(self):
test_data = load_test_data("test_data.csv")
failed_tests = []
for data in test_data:
# 从测试数据中读取请求参数和预期结果
request_data = data["request_data"]
expected_result = data["expected_result"]
# 发送API请求
response = requests.post(self.base_url, headers=self.headers, json=request_data)
try:
# 断言API响应与预期结果是否一致
self.assertEqual(response.json(), expected_result)
except AssertionError as e:
# 断言失败时,记录失败的测试用例和失败原因
test_case = {
"request_data": request_data,
"expected_result": expected_result,
"actual_result": response.json(),
"error_message": str(e)
}
failed_tests.append(test_case)
# 生成测试报告
generate_test_report(failed_tests)
def load_test_data(file_path):
test_data = []
with open(file_path, "r") as file:
reader = csv.DictReader(file)
for row in reader:
test_data.append(row)
return test_data
def generate_test_report(failed_tests):
# 创建测试报告
report = []
# 添加测试用例结果到测试报告
for test_case in failed_tests:
result = {
"Request Data": json.dumps(test_case["request_data"]),
"Expected Result": json.dumps(test_case["expected_result"]),
"Actual Result": json.dumps(test_case["actual_result"]),
"Error Message": test_case["error_message"]
}
report.append(result)
# 生成HTML格式的测试报告
with open("test_report.html", "w") as report_file:
runner = HTMLTestRunner.HTMLTestRunner(stream=report_file, title="API Test Report", description="Test Results")
runner.generateReport(report)
if __name__ == "__main__":
# 加载测试用例
test_suite = unittest.TestLoader().loadTestsFromTestCase(APITestCase)
# 执行测试
unittest.TextTestRunner().run(test_suite)
```


在上述代码中,我们首先在`test_api`方法中定义了一个空的列表`failed_tests`,用于存储失败的测试用例。当断言失败时,我们捕获`AssertionError`异常,并将断言失败的测试用例、请求参数、预期结果、实际结果和失败原因保存到字典`test_case`中,然后将其添加到`failed_tests`列表中。


在`generate_test_report`函数中,我们创建了一个空的列表`report`,用于存储测试报告的数据。然后,我们遍历`failed_tests`列表中的测试用例,将每个测试用例的相关信息以字典的形式添加到`report`列表中。


最后,在生成HTML格式的测试报告时,我们调用`runner.generateReport(report)`方法,将`report`列表传递给`HTMLTestRunner`的`generateReport`函数,以将测试用例的结果添加到测试报告中。


请注意,以上代码仅为示例,你可以根据自己的需求进行修改和扩展。你可以根据实际情况自定义测试报告的格式和内容,并根据需要修改和完善失败原因的记录方式。


相关文章
|
1月前
|
Java 关系型数据库 数据库连接
Mybatis+MySQL动态分页查询数据经典案例(含代码以及测试)
Mybatis+MySQL动态分页查询数据经典案例(含代码以及测试)
28 1
|
2月前
|
测试技术
包含用例执行时间的测试报告代码
包含用例执行时间的测试报告代码
|
4月前
com串口通信测试代码
com串口通信测试代码
28 0
|
18天前
|
算法 安全 Java
java代码 实现AES_CMAC 算法测试
该代码实现了一个AES-CMAC算法的简单测试,使用Bouncy Castle作为安全提供者。静态变量K定义了固定密钥。`Aes_Cmac`函数接受密钥和消息,返回AES-CMAC生成的MAC值。在`main`方法中,程序对给定的消息进行AES-CMAC加密,然后模拟接收ECU的加密结果并进行比较。如果两者匹配,输出"验证成功",否则输出"验证失败"。辅助方法包括将字节转为16进制字符串和将16进制字符串转为字节。
|
1月前
|
测试技术 数据库 Python
python测试代码(二)
python测试代码(二)
19 0
|
1月前
|
Java 测试技术
单元测试编写可测试代码
单元测试编写可测试代码
19 2
|
3月前
|
网络协议 Linux C语言
C语言-多播测试代码(IPv4和IPv6)
C语言-多播测试代码(IPv4和IPv6)
35 0
|
4月前
|
SQL Oracle 关系型数据库
助力工业物联网,工业大数据之ODS层构建:申明分区代码及测试【十】
助力工业物联网,工业大数据之ODS层构建:申明分区代码及测试【十】
44 0
|
4月前
|
存储
存地址实现组包逻辑的一个测试代码。
存地址实现组包逻辑的一个测试代码。
16 0
|
4月前
|
算法 Java Linux
Java【代码分享 07】Java执行Python代码的3类5种情况测试(Java源码+Python源码举例)
Java【代码分享 07】Java执行Python代码的3类5种情况测试(Java源码+Python源码举例)
36 0

热门文章

最新文章