testng开源插件arrow介绍 -凯发k8网页登录

blog已经转移至github,大家请访问 http://qaseven.github.io/

testng开源插件arrow介绍

是一个设计用来简化广泛需求的 测试框架,旨在涵盖所有类型的测试,包括、、端到端集成测试等,而我们在基于testng搭建框架,编写时,为保证测 试用例的稳定性,需要增加测试用例失败自动重跑功能,这便促成了arrow的诞生。 arrow是基于testng监听器扩展的插件,如果把testng比作一把强劲的弓,那么插件就是配合弓使用的箭,这也是arrow命名的由来。
  当前arrow插件已开源,可通过以下地址访问:https://github.com/netease/arrow
  一、arrow功能介绍
  1、  支持通过简单配置实现失败的测试用例自动重跑
  2、  支持html结果报告中展示测试用例运行次数
  3、  支持自动解析源代码中的@author标签,在html结果报告中展示(失败用例可以方便查找维护者)
  4、  修复testng原生html报告中锚点跳转不正确的
  俗话说,眼见为实耳听为虚,下面就带大家看看实际效果图吧!
  二、arrow使用效果
  使用arrow插件运行基于testng的测试用例后会生成我们自定义的报告power-emailable-report.html,下图1显示 在测试用例中书写@author标签,使用arrow执行完用例后生成如图2的结果报告,报告中会自动读取authors信息以及running counts运行次数,通过authors信息方便自动获取到该用例的维护者,通过running counts方便知道当前用例是否失败重跑。
  图1
  图2
  三、如何使用arrow
  使用arrow无需修改原有的测试代码
  1、  首先你需要有一套testng编写的测试用例
  2、  测试工程中需要testng.jar(核心不能忘!),log4j.jar(用于日志的输出)以及我们提供的arrow.jar
  3、  测试工程根目录下新建config.properties文件,同时配置如下参数
  retrycount=1 #定义重跑次数,不是必填项, 默认值是0,即失败不重跑
  sourcecodedir=src #定义源代码路径,不是必填项, 默认值是src
  sourcecodeencoding=utf-8 #定义源代码编码,不是必填项,默认值是utf-8
 4、  在build.xml文件中加入监听器,配置如下,配置完成后通过ant运行testng测试用例后可以在生成的html结果报告中查看效果
haltonfailure="false" listeners="com.netease.qa.testng.poweremailablereporter,
com.netease.qa.testng.retrylistener, com.netease.qa.testng.testresultlistener">
  5、  如果您不习惯4的做法,可以在testng.xml中加入如下的监听器,配置完成后右键testng.xml文件运行测试用例即可
  四、arrow扩展-失败用例自动截图
  由于截图功能在不同的测试框架上api会不同,所以当前arrow中没有把这个功能集成进来,但是如果你需要该功能也可以很方便的进行扩展。
  1、 在这里下载arrow的源代码
  2、 修改testresultlistener类,在ontestskipped以及ontestfailure方法中加入如下代码
@override
public void ontestfailure(itestresult tr) {
super.ontestfailure(tr);
savescreenshot(tr);
}
@override
public void ontestskipped(itestresult tr) {
super.ontestskipped(tr);
savescreenshot(tr);
}
private void savescreenshot(itestresult tr) {
simpledateformat formatter = new simpledateformat("yyyy_mm_dd_hh_mm_ss");
string mdatetime = formatter.format(new date());
string filename = mdatetime "_" tr.getname();
string filepath = "";
try {
//这里可以调用不同框架的截图功能
file screenshot = ((takesscreenshor)webdriver).getscreenshotas(outputtype.file);
filepath = “screenshot/” filename “.jpg”
file destfile = new file(filepath);
fileutils.copyfile(screenshot, destfile);
} catch (exception e) {
filepath = filename " firefox tackscreentshot failure:" e.getmessage();
logger.error(filepath);
}
if (!"".equals(filepath)) {
reporter.setcurrenttestresult(tr);
reporter.log(filepath);
//把截图写入到html报告中方便查看
reporter.log("");
}
}
  3、修改完成后重新运行测试用例,即可实现失败自动截图,同时会把截图写入到html结果报告中,方便定位问题,如图3。
  图3
  最后,欢迎大家使用以及共同改进arrow,方便大家基于testng的测试工作。

posted on 2014-03-20 11:24 顺其自然evo 阅读(2362) 评论(4)     所属分类: 测试学习专栏

# re: testng开源插件arrow介绍 2014-04-23 16:36

((takesscreenshor)webdriver)

这个webdriver 你是怎么处理的啊?我的总是失败。  回复     

# re: testng开源插件arrow介绍 2014-04-23 17:37

有email或qq没?
上面的问题麻烦帮解答下呗。  回复     

# re: testng开源插件arrow介绍 2014-04-24 16:09

问题已解决。需要传入driver对象。  回复     

# re: testng开源插件arrow介绍 2014-05-14 17:34

怎么传入webdriver呢
@11  回复     

2014年3月
2324252627281
28
915
161922
2329
3012345

导航

统计

常用链接

留言簿(55)

随笔分类

随笔档案

文章分类

文章档案

搜索

最新评论

阅读排行榜

评论排行榜

网站地图