教育行業(yè)A股IPO第一股(股票代碼 003032)

全國(guó)咨詢/投訴熱線:400-618-4000

Appium自身非必現(xiàn)bug影響自動(dòng)化測(cè)試正常運(yùn)行如何解決?

更新時(shí)間:2019年10月09日15時(shí)15分 來(lái)源:傳智播客 瀏覽次數(shù):

在進(jìn)行軟件UI自動(dòng)化測(cè)試的時(shí)候,經(jīng)常會(huì)出現(xiàn)非被測(cè)軟件bug導(dǎo)致的測(cè)試執(zhí)行失敗,常見(jiàn)原因包括:測(cè)試腳本的問(wèn)題、網(wǎng)絡(luò)問(wèn)題、產(chǎn)品UI的變更等等。還有一種情況是測(cè)試工具自身的bug,特別是偶現(xiàn)的bug并且開(kāi)源的自動(dòng)化測(cè)試工具還沒(méi)有修復(fù)該bug的時(shí)候,我們關(guān)心的是如何繞過(guò)這個(gè)已知bug繼續(xù)使用appium進(jìn)行其他場(chǎng)景的自動(dòng)化測(cè)試,本文通過(guò)一個(gè)實(shí)例進(jìn)行分析,分兩步闡述。【推薦了解:軟件測(cè)試培訓(xùn)課程

一、使用appium測(cè)試抖音軟件

目標(biāo)

使用appium進(jìn)行抖音主頁(yè)的自動(dòng)化測(cè)試,發(fā)現(xiàn)導(dǎo)致腳本執(zhí)行失敗的非必現(xiàn)appium自身的bug

具體場(chǎng)景

1. 使用appium連接安卓手機(jī)后運(yùn)行腳本打開(kāi)抖音主頁(yè)


Appium自身非必現(xiàn)bug解決方法1

1. 使用腳本向上滑動(dòng)屏幕刷新抖音內(nèi)容

2. 使用腳本對(duì)新出現(xiàn)的內(nèi)容進(jìn)行點(diǎn)贊等操作

3. 發(fā)現(xiàn)自動(dòng)化腳本在進(jìn)行點(diǎn)贊操作時(shí)有時(shí)腳本會(huì)運(yùn)行失敗,排查后發(fā)現(xiàn)原因是有時(shí)appium執(zhí)行向上滑動(dòng)操作失敗

4. 因?yàn)橄蛏匣瑒?dòng)操作在實(shí)際編寫的很多自動(dòng)化測(cè)試腳本中都用到,這步失敗會(huì)影響后面的測(cè)試場(chǎng)景。怎樣解決這個(gè)問(wèn)題進(jìn)行下一步測(cè)試?

二、使用try-catch跳過(guò)已知bug繼續(xù)進(jìn)行腳本測(cè)試

目標(biāo)

跳過(guò)已知的bug繼續(xù)運(yùn)行自動(dòng)化測(cè)試腳本試圖發(fā)現(xiàn)其他場(chǎng)景的bug

步驟

1.定義向上滑動(dòng)的方法


private void huadong() {
       int width = driver.manage().window().getSize().width;
       int height = driver.manage().window().getSize().height;
       int y1 = height * 3 / 4; // 上滑的開(kāi)始點(diǎn),從y1開(kāi)始也就是屏幕的四分之三處
       int y2 = height * 1 / 4; // 上滑的結(jié)束點(diǎn),到y(tǒng)2結(jié)束也就是屏幕的四分之一處
       TouchAction tAction = new TouchAction(driver);
       tAction.press(width / 2, y2).waitAction(Duration.ofSeconds(1 / 4)).moveTo(width / 2, y1).release().perform();
    }
2.使用try-catch調(diào)用huadong()方法,接收appium滑動(dòng)出錯(cuò)后拋出的異常,使腳本可以繼續(xù)運(yùn)行
try {
        huadong();
    } catch (Exception e) {
        System.out.println("滑動(dòng)出錯(cuò)");
    }

3.繼續(xù)運(yùn)行腳本的其他的點(diǎn)擊操作,比如點(diǎn)贊、轉(zhuǎn)發(fā)等等

appium進(jìn)行ui自動(dòng)化

總結(jié):在使用appium進(jìn)行ui自動(dòng)化時(shí)由于該工具本身的一些偶現(xiàn)bug導(dǎo)致腳本執(zhí)行失敗,可以通過(guò)java中的try-catch進(jìn)行異常捕獲后繼續(xù)運(yùn)行剩余的腳本,保證了測(cè)試腳本的正常運(yùn)行。同時(shí)出現(xiàn)異常時(shí)打印的語(yǔ)句也可以在appium server的控制臺(tái)中進(jìn)行查看。

0 分享到:
和我們?cè)诰€交談!