尽管自动化测试可以生成简洁的html测试报告,但是Testng自带的模板往往还是不够用。如果想要更加漂亮的数据和样式,就需要自己手动写模板。虽然有很多代码生成器,可以轻而易举的生成想要的模板样式代码,但是修改啊,配置啊多多少少还是会花一些时间,有时候若稍有不慎,调整布局就会弄花眼。如果使用成熟的用例管理工具,那么只要有测试结果,测试报告就可以自动生成了,比如使用testlink导出测试报告,则可以省去不少精力和时间了。如果想亲自设计一套符合自己审美的测试报告模板,这里推荐一个免费的工具MagicalCoder,H5页面布局可以在线使用,拖拖拽拽弄好布局后就可以获得源码,不懂前端代码的测试同学也可以简单使用。
言归正传,鉴于有的公司使用testlink做用例管理工具,个人也觉得testlink可以生成pdf格式的测试报告,在交付的时候比html报告显得更正式一些,所以这次简单介绍一下如何将自动化执行结果反应在testlink中。其实很简单,只要在自动化测试代码中配置连接到testlink数据库,然后在每个testcase里对应上testlink用例的信息,然后运行自动化测试,执行结果就会更新到数据库中就行啦!
一、连接testlink
Testlink数据库中所记录测试的结果都存放在exection表中,主要字段包括id,build_id用例版本号,tester_id测试工程师id,testplan_id测试计划,tcversion_id用例编号等,因此我们首先要连接数据库,在自动化测试项目下,创建jdbc连接mysql,java代码如下:
二、找到testlink用例的参数对应信息
上一步我们知道结果是执行记录到exection表中,因此我们需要知道自动化测试代码执行时所对应的testlink用例的tcversion_id号,以及执行测试的测试工程师tester_id号,版本信息testplan_id等,因此我们在testlink上手动创建完用例后,需要到数据库表中,依次找到对应的字段参数值。如不同的测试工程师对应的tester_id需要到users表中查找,每个测试工程师找到自己对应的id,在自动化代码中写入自己的tester_id,测试用例执行结果,就会显示该用例是由哪位工程师自动化测试触发的了。其他字段所属table,大家可以通过查看数据DDL信息,找到对应的字段值,这里就不一一举例了。
三、在自动化项目代码中写入对应用例变量值
自动化测试代码中每一个@Test可以对应一个testlink上的用例,因此在测试方法中定义写入tcversion_id值,同时声明excution_type为执行方式,默认2为自动执行。
四、封装操作testlink方法,创建执行sql
有了testlink中用例及执行的数据信息,接下来就可以将结果写入数据库了,因此我们需要创建sql语句来更新数据库中的测试结果,创建一个封装类方法文件,里面封装了对testlink操作方法,参考代码如下:
五、在自动测试代码中调方法,将结果写入测试testlink
接下来,我们就可以在自动化测试代码中,调用之前创建好的方法,定义status变量,根据自己用例,创建断言验证,如果断言成功,则status=p,用例结果为pass;若断言失败则status=f,执行结果至exection后,更新结果写入exection表中,testlink用例就会自动显示成功或失败了。
代码更新完,接下来我们可以执行程序了。跑完自动化代码后,我们来看一下testlink对应的用例吧,结果已经自动标记为pass了,运行模式为自动的结果(小扳手),已经成功显示在用例结果中。
Testlink自动执行标记完测试结果后,可以使用testlink的生成报告功能,报告可以选择标记你想在测试报告中显示的选项,可以生成html或pdf等格式的文件。在报告路径文件下搜索刚刚生成的测试报告吧,看一看符不符合你想要的测试结果,自动执行测试代码,再一键将结果生成报告,是不是超简单超省心!
作者:serena song
来源:51Testing软件测试网原创