Selenium生成Report的利器- ExtentReports

时间:2021-04-10 09:41:15
生成的报告最后的样子是:

Selenium生成Report的利器- ExtentReports

里面加了截图, 将每一步骤的截图,(所以方法里多加了一个截屏方法)。 加入到报告中,这样更清晰明了。

首先 pom文件中需引用:
<!-- 报告输出 -->
<dependency>
<groupId>com.relevantcodes</groupId>
<artifactId>extentreports</artifactId>
<version>2.41.1</version>
</dependency>
public  void runtest() throws InterruptedException {

    //生成报告
ExtentReports extent=new ExtentReports("./demo.html", NetworkMode.OFFLINE);
ExtentTest test = extent.startTest("智联卓聘测试报告,(*^__^*) ");
try {
driver=new ChromeDriver();
String strUrl="http://c.highpin.cn/";
Thread.sleep(2000);
driver.get(strUrl);
driver.manage().window().maximize();
Thread.sleep(2000);
driver.findElement(By.name("Logon_UserEmail")).clear();
driver.findElement(By.name("Logon_UserEmail")).sendKeys("testzp@qq.com");
test.log(LogStatus.PASS,"输入用户名"+"截图 -- " + test.addScreenCapture(snapshot((TakesScreenshot)driver,"input_username.png")));
driver.findElement(By.name("Logon_Password")).clear();
driver.findElement(By.name("Logon_Password")).sendKeys("wxl1234567");
test.log(LogStatus.PASS,"输入密码"+"截图 -- " + test.addScreenCapture(snapshot((TakesScreenshot)driver,"input_password.png")));
driver.findElement(By.id("Logon_PostCode")).clear();
driver.findElement(By.id("Logon_PostCode")).sendKeys("1234");
driver.findElement(By.cssSelector(".CLoginBtn")).click();
test.log(LogStatus.PASS,"点击登录按钮"+"截图 -- " + test.addScreenCapture(snapshot((TakesScreenshot)driver,"login_click.png")));
Thread.sleep(5000);
String imgPath=snapshot((TakesScreenshot)driver,"LoginPass.png");
test.log(LogStatus.PASS,"登录成功"+"截图 -- " + test.addScreenCapture(imgPath)); //成功之后打印报告
}catch (java.lang.Exception e)
{
e.printStackTrace();
// 记录错误信息
String imgPath=snapshot((TakesScreenshot)driver,"LoginFail.png");
test.log(LogStatus.FAIL, "截图 -- " + test.addScreenCapture(imgPath));
test.log(com.relevantcodes.extentreports.LogStatus.INFO, "截图 -- " + test.addScreenCapture(imgPath));
}
extent.endTest(test);
extent.flush();
extent.close();
}
//selenium 截屏方法
public String snapshot(TakesScreenshot drivername, String filename)
{
// this method will take screen shot ,require two parameters ,one is driver name, another is file name
String Screenshot=null;
File scrFile=drivername.getScreenshotAs(OutputType.FILE);
try{
Screenshot=filename;
FileUtils.copyFile(scrFile,new File(filename));
}catch(IOException e){
// TODO Auto-generated catch block
System.out.println("Can't save screenshot");
e.printStackTrace();
}
finally
{
return Screenshot;
}
}
另一个截屏方法,写的比较好,我没有用这个方法,这个方法传的是三个参数 哈哈

/**
* @param driver -- 浏览器对象
* @param screenShotName -- 截图的文件名
* @return destImagePath -- 截图的存放路径
* @Description: 屏幕截图方法(动态注入到测试类的方法)
*/
public static String captureScreenShot(WebDriver driver, String reportDir, String screenShotName) {
TakesScreenshot ts = (TakesScreenshot) driver;
File sourceImage = ts.getScreenshotAs(OutputType.FILE);
String destImagePath = reportDir + "/" + screenShotName + ".png";
File destImage = new File(destImagePath);
try {
FileUtils.copyFile(sourceImage, destImage);
} catch (IOException e) {
e.printStackTrace();
}
destImagePath = screenShotName + ".png";
return destImagePath;
}

Selenium生成Report的利器- ExtentReports的更多相关文章

  1. JMeter 十三:生成 report dashboard

    参考:http://jmeter.apache.org/usermanual/generating-dashboard.html JMeter 3.x开始,可以生成HTML格式的report . 注意 ...

  2. 在 &period;Net 项目中生成Report小记

    背景 项目为WinForm + WCF 的应用,按照给定格式生成Report,显示在WinForm窗体上并可以导出为PDF和Excel文件. 分析 之前用过DevExpress For WinForm ...

  3. Selenium Extent Report的设置

    Extent Report需要在线加载css,不然生成的html report会很难看. 但可以设置不在线加载css,而是使用本地css,在使用htmlreporter加上这句 htmlReporte ...

  4. 开源you-get项目爬虫,以及基于python&plus;selenium的自动测试利器

    写在前面 爬虫和自动测试,对于python来说是最合适不过也是最擅长的. 开源的项目也很多,例如you-get项目https://github.com/soimort/you-get.盗链和爬虫神器. ...

  5. Pytest 生成Report

    1. 生成JunitXML 格式的测试报告 JunitXML报告是一种很常用的测试报告,比如可以和Jenkins进行集成,在Jenkins的GUI上显示Pytest的运行结果,非常便利.运行完case ...

  6. python&plus;selenium生成测试报告后自动发送邮件

    标签(空格分隔): 自动化测试 运行自动化脚本后,会产生测试报告,而将测试报告自动发送给相关人员,能够让对方及时的了解测试情况,查看测试结果. 整个脚本包括三个部分: 生成测试报告 获取最新的测试报告 ...

  7. 生成report由Eamil定時寄出

    Blat 是一个命令行发邮件的小工具,仅支持简单的SMTP协议,需要SMTP服务器的支持. 官网:http://www.blat.net/    下载地址:https://sourceforge.ne ...

  8. Python&plus;Selenium学习--自动生成HTML测试报告

    前言 在脚本运行完成之后,除了在log.txt 文件看到运行日志外,我们更希望能生一张漂亮的测试报告来展示用例执行的结果.        HTMLTestRunner 是Python 标准库的unit ...

  9. 记Selenium HTMLTestRunner 无法生成测试报告的总结

      使用Python ,HTMLTestRunner 生成测试报告时,遇到很奇怪的问题,明明运行的结果,没有任何报错,就是不生成测试报告,纠结好久.google+baidu搜索结果也不满意,最后终于解 ...

随机推荐

  1. 将Controller抛出的异常转到特定View

    <!-- 将Controller抛出的异常转到特定View --> <bean class="org.springframework.web.servlet.handler ...

  2. mysql高级排序&amp&semi;高级匹配查询示例

    在大多数应用场景下,我们使用mysql进行查询时只会用到'=', '>' , '<' , in, like 等常用的方法,看起来,大多数情况下,已经足以应付我们的小型应用了.不过,在一些特 ...

  3. C&num; WPF 显示图片和视频显示 EmuguCv、AForge&period;Net测试(续)

    介绍 本文是接着上文<C# WPF 显示图片和视频显示 EmuguCv.AForge.Net测试>写的,建议先看下上文,因为有些代码还需要了解. 增添 接着上文的代码,我们可以在事件处理方 ...

  4. STL MAP及字典树在关键字统计中的性能分析

    转载请注明出处:http://blog.csdn.net/mxway/article/details/21321541 在搜索引擎在通常会对关键字出现的次数进行统计,这篇文章分析下使用C++ STL中 ...

  5. GitHub最全的前端资源汇总仓库(包括前端学习、开发资源、求职面试等)

    在GitHub上收集的最全的前端资源汇总(包括前端学习.前端开发资源.前端求职面试等) 个人结合github上各位大神分享的资源进行了简单的汇总整理,每一个条目下面都有丰富的资料,是前端学习.工作的好 ...

  6. List应用举例

    1.集合的嵌套遍历 学生类: package listexercise; /** * Created by gao on 15-12-9. */ public class Student { priv ...

  7. 【转】二叉树 VS hashtable

    hash_table和二叉搜索树都经常被用来构建符号表(或者字典)以及相关的结构,并且他们都表现出了很高的效率.最近也在不同的程序中使用了这两种数据结构,实现完毕后思考一下,对两者做了一个简单的比较: ...

  8. Android在真机调试的设置方法

    1. 设置android手机为USB调试模式.步骤: menu---> 设置 ---> 应用程序 ---> 开发 , 选择[USB调试] 2. 用USB连接手机和电脑,并确保成功.步 ...

  9. AutoItLibrary安装报错(robotframework)解决

    官网下载地址:http://www.softpedia.com/get/Programming/Components-Libraries/AutoItLibrary.shtml Csdn下载地址:ht ...

  10. Java数据类型、操作符、表达式

    基本与C#相同,因C#从Java学的   如操作符     对象的Equals方法,比较两个对象的内容是否相等.     ==是比较是否引用同一对象.