全国咨询热线:400-618-4000

Appium自身非必现bug影响自动化测试正常运行如何解决?

创建时间:2019年10月09日15时15分

在进行软件UI自动化测试的时候,经常会出现非被测软件bug导致的测试执行失败,常见原因包括:测试脚本的问题、网络问题、产品UI的变更等等。还有一种情况是测试工具自身的bug,特别是偶现的bug并且开源的自动化测试工具还没有修复该bug的时候,我们关心的是如何绕过这个已知bug继续使用appium进行其他场景的自动化测试,本文通过一个实例进行分析,分两步阐述。【推荐了解:软件测试培训课程

一、使用appium测试抖音软件

目标

使用appium进行抖音主页的自动化测试,发现导致脚本执行失败的非必现appium自身的bug

具体场景

1. 使用appium连接安卓手机后运行脚本打开抖音主页


Appium自身非必现bug解决方法1

1. 使用脚本向上滑动屏幕刷新抖音内容

2. 使用脚本对新出现的内容进行点赞等操作

3. 发现自动化脚本在进行点赞操作时有时脚本会运行失败,排查后发现原因是有时appium执行向上滑动操作失败

4. 因为向上滑动操作在实际编写的很多自动化测试脚本中都用到,这步失败会影响后面的测试场景。怎样解决这个问题进行下一步测试?

二、使用try-catch跳过已知bug继续进行脚本测试

目标

跳过已知的bug继续运行自动化测试脚本试图发现其他场景的bug

步骤

1.定义向上滑动的方法


private void huadong() {
       int width = driver.manage().window().getSize().width;
       int height = driver.manage().window().getSize().height;
       int y1 = height * 3 / 4; // 上滑的开始点,从y1开始也就是屏幕的四分之三处
       int y2 = height * 1 / 4; // 上滑的结束点,到y2结束也就是屏幕的四分之一处
       TouchAction tAction = new TouchAction(driver);
       tAction.press(width / 2, y2).waitAction(Duration.ofSeconds(1 / 4)).moveTo(width / 2, y1).release().perform();
    }
2.使用try-catch调用huadong()方法,接收appium滑动出错后抛出的异常,使脚本可以继续运行
try {
        huadong();
    } catch (Exception e) {
        System.out.println("滑动出错");
    }

3.继续运行脚本的其他的点击操作,比如点赞、转发等等

appium进行ui自动化

总结:在使用appium进行ui自动化时由于该工具本身的一些偶现bug导致脚本执行失败,可以通过java中的try-catch进行异常捕获后继续运行剩余的脚本,保证了测试脚本的正常运行。同时出现异常时打印的语句也可以在appium server的控制台中进行查看。