• 8.0 有破解

  • 测试方法论-质量的基石 at 2017年11月21日

    个人觉得。。导火索是,盲目追求自动化是盲目追求自动化还是盲目追求自动化啊哈哈哈。。我的理解最开始说的是,那些并不了解自动化的意义和目的,只是为了自动化而自动化的人,而后被理解成了对追求自动化技术不断进步的人的讽刺,而引起的混战。
    其实技术和思想是你中有我,我中有你的吧,没有技术的思想无法最终落地转化为生产力,没有思想的技术也无法走的更远,这点在 100 多回复中都是有共识的,大家都是在讽刺那些偏执觉得一方必须压过一方的那些人,其实没有矛盾啊(我是不会承认我没把每一篇回复都仔细看完的)
    嘛,我只是来打酱油的,版大别删这个帖子啊,我以后还要经常来看看,大家说的很多都很有道理,只是所处环境不同,运用场景不同罢了。


  • idea 的设置供参考

  • 另外,extendreports 里面调整 flush() 的时机(设置追加报告的模式),也能实现 realtime 吧

  • 看看开源协议先,小心人告你,做商业用途😏

  • 或者可以在 xml 中设置组中组,然后在@BeforeGroups中创建父节点

  • 创建父节点和子节点,比如我是以 test 作为父节点,以 class 作为子节点,以 method 作为孙节点:

    //在Suite执行之前,先创建ExtentReport实例
    @BeforeSuite
    public void beforeSuite(ITestContext context) {
        extent = ExtentManager.createInstance(context.getSuite().getName(),context.getSuite().getName());
    }
    
    @BeforeGroups
    public synchronized void beforeGroups(){
    
    }
    
    @BeforeTest
    public synchronized void beforeTest(ITestContext context){
        //将test作为父节点
        ExtentTest parent = extent.createTest(context.getName());
        parentTest.set(parent);
    }
    
    @BeforeClass
    public synchronized void beforeClass() {
        //将class作为子节点
        ExtentTest child = parentTest.get().createNode(getClass().getSimpleName());
        childTest.set(child);
    }
    
    @BeforeMethod
    public synchronized void beforeMethod(Method method) {
        //将Method作为孙节点
        ExtentTest GrandsonTest = childTest.get().createNode(method.getName());
        test.set(GrandsonTest);
    }
    
  • 如果要本地化,要改包内的报告模板,head.ftl 和 index.ftl
    或者通过接口修改 cdn 地址

    //设置静态文件的DNS 如果cdn.rawgit.com访问不了,可以设置为:ResourceCDN.EXTENTREPORTS 或者ResourceCDN.GITHUB
          htmlReporter.config().setResourceCDN(ResourceCDN.EXTENTREPORTS);
    
  • 我猜是 selenium 的的包用了 3.5+ 的

  • 设了 app 就不要设 activity 嘛。。
    caps.apps:从本地安装后启动
    caps.appPackage+caps.appActivity: 从设备里启动某个应用
    caps.BROWSER_NAME:启动设备里的浏览器
    三选一就行,没必要全设置

  • 设置 Capability 的时候 automationName 设置为 UIAutomator2。
    WebDriverWait 是 selenium 的,不过本来也是继承的 selenium 的方法,何必分那么清楚呢😁
    我贴的代码,实现的是根据 toast 内容判断 toast 是否存在(网上抄的),目前就看到这样的一个替代方案

  • 如果是 toast,用 UIAutomator2 可以解决。

    final WebDriverWait wait = new WebDriverWait(driver,timeOut);
    wait.until(ExpectedConditions.presenceOfElementLocated(By.xpath(".//*[contains(@text,'"+ toast + "')]")));
    
  • 嘛,用 Unicode 来表示中文呢?

  • 很有可能,不过 testerhome 里面有人分享过解决方案的。

    //设置静态文件的DNS 如果cdn.rawgit.com访问不了,可以设置为:ResourceCDN.EXTENTREPORTS 或者ResourceCDN.GITHUB
          htmlReporter.config().setResourceCDN(ResourceCDN.EXTENTREPORTS);
    

    我是把静态文件下了下来,把生成报告对应的静态资源地址改成了本地。

  • 具体指哪一方面呢?用过 reportNG 和 extentReports,网上看过 junit 和 testNG 内置的 report 模板,最终还是选择了 extentReports,自以为,作为报告来说,extent 生成的是最像一个测试报告的样式