测试报告的生成

本文介绍了一种利用DLL实现测试数据与程序分离的方法,并通过Excel读取和写入测试数据及报告。文中提供了具体的函数接口说明及使用示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

dll除了导出上篇测试程序通过excel读取测试数据达到数据与程序的分离,所说的这几个函数来实现测试数据写到excel中,从而实现测试数据与测试程序分离外,输出函数如下:

BOOL InitExcelObject ( /*CString strFilePath*/ );
BOOL UninitExcelObject ( void );
BOOL ReadExcel ( int row, int col, char * cellmsg );
bool EnumSpecialFunction( char * functionname, std::vector<StartParameters> & result );

还导出了BOOL WriteExcel ( CString funcName, CString funcResult, int sorceline, CString failInfor );

用于向excel中写测试报告。

那么,如何使用导出的函数进行测试那?请参考上篇测试程序通过excel读取测试数据达到数据与程序的分离

注意:测试报告的生成到excel中,当前工作路径下,需要新建一个名为TestReport.xls的excel。

本次工程是基于cppunit这个框架,cppunit所提供的断言,如CPPUNIT_ASSERT(condition);如果失败,则本testcase后其他断言不再运行,退出本次testcase,继续执行其他testcase。鉴于此,涉及程序如下:

void SampleTest::testStart1()
{
 EnumSpecialFunction( functionname, data );

 int resstart = 0;
 StartParameters startparam = data[0];
 resstart = start( startparam.a, startparam.b, startparam.c, startparam.d );

//以上程序使用了从excel读取测试数据的方法,详细参考上篇
 char funName[] = "testStart1";
 int line = CPPUNIT_SOURCELINE().lineNumber();//这里参考了cppunit提供的方法,可以获取当前的行号。
MY_CPPUNIT_ASSERT( funName, line, startparam.expectedResult==resstart );//这里是自己重新实现的断言,就不再使用cppunit的断言了 
 //Many Assert,这里会有很多其他待测试函数的判断的断言,如果任意一个断言失败,都直接跳出当前的testStart1的执行,所以所有断言都通过,才会继续进行,所以运行到这里,说明本testStart1中的测试程序都成功了,直接给dll提供的函数传入正确的参数:funcResult中传入"Pass", line传入-1,具体如下:

 CString errInfor; 
 errInfor.Format("%d", 0); 
 WriteExcel ( funName, "Pass",  -1, errInfor );
}

重新写cppunit的断言如下:

#define MY_CPPUNIT_ASSERT( funName, line, condition )/
CString infor = #condition; /
if ( !(condition) ) /
{  /
 if( line > 0 )/
{/
 WriteExcel ( funName, "Fail", line, infor );/
}/
} /
CPPUNIT_ASSERT(condition);//这里调用cppunit中提供的断言。

需要参考程序或者dll的话,可以留言,免费提供的哦~~

在禅道中生成测试报告是软件测试流程中的重要环节,它能够帮助测试团队总结测试结果,评估产品质量,并为后续的产品上线提供依据。禅道作为一款功能强大的开源项目管理软件,支持测试用例管理、缺陷跟踪以及测试报告生成等功能[^2]。 ### 准备工作 在开始生成测试报告之前,确保以下事项已完成: - 所有测试用例已经设计完成并录入禅道。 - 测试用例已分配给相应的测试人员。 - 测试用例执行完毕,所有发现的缺陷已被记录。 - 缺陷回归测试已完成,确认所有问题都已解决或按计划处理。 ### 生成测试报告的步骤 #### 1. 登录禅道系统 使用具有测试报告生成权限的账号登录禅道系统。 #### 2. 进入测试模块 导航至项目下的“测试”模块,这里通常包含“测试需求”、“测试用例”、“测试任务”等子模块。 #### 3. 创建测试任务 如果尚未创建测试任务,点击“新建测试任务”,填写相关信息如测试版本、测试负责人、测试周期等。 #### 4. 关联测试用例 在测试任务详情页,关联需要执行的测试用例。可以手动选择或者通过筛选条件批量添加测试用例。 #### 5. 分配与执行测试用例 将测试用例分配给指定的测试人员,并跟踪测试进度。测试人员完成测试后,记录测试结果。 #### 6. 提交缺陷 对于执行失败的测试用例,提交缺陷报告,记录问题详情,并跟踪缺陷状态。 #### 7. 回归测试 对修复后的缺陷进行回归测试,确保问题已解决且未引入新的问题。 #### 8. 查看测试统计 禅道提供了丰富的测试统计功能,可以在“测试统计”页面查看测试覆盖率、缺陷分布、测试通过率等关键指标。 #### 9. 生成测试报告测试任务完成后,点击“生成报告”按钮,禅道会根据测试任务中的数据自动生成测试报告。报告内容包括但不限于: - 测试概述(测试范围、测试环境、测试周期等) - 测试结果汇总(用例总数、通过数、失败数、阻塞数等) - 缺陷分析(缺陷总数、严重级别分布、修复状态等) - 测试结论与建议 #### 10. 导出与分享测试报告 生成测试报告可以导出为PDF或Word格式,便于分享给项目相关人员。 ### 自动化生成测试报告(可选) 对于需要频繁生成测试报告的场景,可以考虑使用Python脚本自动化这一过程。例如,利用Python的requests库调用禅道API获取测试数据,再使用模板引擎生成HTML格式的报告,最后转换为PDF或Word文档。这种方式可以减少人工操作,提高效率[^3]。 ```python import requests from jinja2 import Environment, FileSystemLoader from weasyprint import HTML # 获取禅道测试数据 def get_test_data_from_zentao(): # 示例:调用禅道API获取测试任务数据 response = requests.get('http://your-zentao-url/api/testtask/1') return response.json() # 使用Jinja2模板生成HTML报告 def generate_html_report(data): env = Environment(loader=FileSystemLoader('templates')) template = env.get_template('test_report_template.html') html_out = template.render(data=data) with open('test_report.html', 'w') as f: f.write(html_out) # 将HTML报告转换为PDF def convert_html_to_pdf(html_file, pdf_file): HTML(filename=html_file).write_pdf(pdf_file) if __name__ == '__main__': test_data = get_test_data_from_zentao() generate_html_report(test_data) convert_html_to_pdf('test_report.html', 'test_report.pdf') ``` ### 注意事项 - 在生成测试报告前,务必确认所有测试数据准确无误。 - 测试报告应保持客观、清晰,避免主观臆断。 - 根据项目的实际情况调整报告内容,确保报告具有针对性和实用性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值