小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

TesterHome | SVN+Jenkins+Maven+Appium+TestNG+ReportNG 實戰(zhàn) Android 自動化測試 ? 社區(qū)

 instl 2014-09-29

好吧,標題寫得好長.
言歸正傳,本文主要是講述如何使用這些工具來整合流程,實現(xiàn)Android平臺的自動化測試.
首先說下背景,因為我測試的東西面向多個國家,對于不同的地域可能有不同的功能,對應不一樣的發(fā)行渠道,需要測試工具有便捷的case管理功能,能方便地面對不同的發(fā)行渠道選擇不同的case.而TestNG可以很方便地配置這些,所以選擇這個框架.
這里直接使用Appium源碼中自帶的testng項目示例.位置在源碼目錄中的

/sample-code/examples/java/testng

1.改造Report的呈現(xiàn)方式
示例Project用Maven來組織項目,所以這里就不改項目架構了,喜歡ant的同學自己去實踐吧.
因為示例中用的是TestNG自己生成的測試報告,比較難看,這里用ReportNG來美化一下.
編輯pom.xml,在依賴中添加ReportNG的依賴:

        <dependency>
            <groupId>org.uncommons</groupId>
            <artifactId>reportng</artifactId>
            <version>1.1.4</version>
            <scope>test</scope>
            <exclusions>
                <exclusion>
                    <groupId>org.testng</groupId>
                    <artifactId>testng</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>com.google.inject</groupId>
            <artifactId>guice</artifactId>
            <version>3.0</version>
            <scope>test</scope>
        </dependency>

ReportNG還得注冊一下監(jiān)聽器,這個放在testng.xml中去注冊,就不寫在POM里了.maven-surefire-plugin插件里配置一個參數(shù),用于接收不同的testng.xml

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>2.17</version>
                <configuration>
                <suiteXmlFiles>
                    <suiteXmlFile>res/${xmlFileName}</suiteXmlFile>
                </suiteXmlFiles>
        </configuration>
            </plugin>

pom里面的值留空:

    <properties>
        <xmlFileName></xmlFileName>
    </properties>

2.使用不同的testng.xml配置文件來配置不同的渠道測試case
在項目根目錄建個res文件夾,把testng.xml放進去,testng.xml文件內(nèi)容如下

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http:///testng-1.0.dtd" >
<suite
    name="Suite"
    verbose="1" >
    <test name="Project_V3023" >
        <packages>
            <package name="com.saucelabs.appium" />
        </packages>
    </test>
    <listeners>
        <listener class-name="org.uncommons.reportng.HTMLReporter" />
        <listener class-name="org.uncommons.reportng.JUnitXMLReporter" />
    </listeners>
    <usedefaultlisteners name="false" />
</suite>

這個文件用來配置選擇不同的渠道需要選擇的case,res文件夾下可以扔很多testng.xml文件用于不同的渠道.比如A渠道可以用testng1.xml,B渠道可以用testng2.xml,另外在這里面注冊一下ReportNG的監(jiān)聽器.
最后修改一下Project的項目文件結構,最后變成這個樣子(為了演示方便,只保留了一個測試類):


3.配置Jenkins
勾選參數(shù)化構建,創(chuàng)建2個參數(shù)
第1個參數(shù)是創(chuàng)建一個文件夾,并且返回文件夾路徑,這個在后面發(fā)郵件要用到.

第2個參數(shù)是返回testng.xml的名字,這里因為我只有一個,所以直接返回了,后面這里面可以自己加條件判斷是返回哪個testng.xml的名字.比如1\3\5跑testng1.xml,2\4\6跑testng2.xml

用SVN來管理測試代碼

構建觸發(fā)器使用定時觸發(fā)方式,不截圖了.

使用Maven構建項目,并且接收一個參數(shù)

構建后運行一下Python的腳本,用途是拷貝文件,將生成的ReportNG報告拷貝到上面由參數(shù)1創(chuàng)建的目錄下.而這個目錄同時也是Apache的網(wǎng)站目錄,這樣就可以直接通過URL看到測試報告了.

最后用郵件插件發(fā)一下郵件,我這里都是引用的系統(tǒng)配置里的內(nèi)容

收到的郵件是這個樣子

點開鏈接,看到測試報告

最后,總結一下
用SVN管理管理代碼,Jenkins做持續(xù)集成,項目組織用Maven,測試框架用Appium+TestNG,報告呈現(xiàn)用ReportNG.
好吧,撇去Appium不談,其他都是大家用來用去的東西了.
現(xiàn)在的問題:
1.Jenkins的觸發(fā)方式現(xiàn)在是每天晚上定時觸發(fā),因為我拿不到源碼,開發(fā)的編譯系統(tǒng)用的也不是Jenkins,我不知道要如何才能更好地使用持續(xù)集成.各位小伙伴的持續(xù)集成又是怎么做的呢?
2.選擇testng.xml不夠靈活,不能根據(jù)項目特征自動選擇對應的testng.xml,比如我想拿渠道號來區(qū)分,可Jenkins怎么拿到渠道號?
3.Appium支持多個設備同時運行嗎?之前用Robotium時使用Spoon就可以同時在多個設備上運行.

擴展一下:
網(wǎng)易上個月出了一個TestNG的小插件,實現(xiàn)了失敗用例重跑,失敗自動截圖,展示用例運行次數(shù)等等功能,很好很實用,就只有一個缺點,生成的報告是改造了TestNG自帶的emailable-report.html,實在是太-丑-了~~這個看能不能把功能移植到ReportNG上去.有興趣的小伙伴可以關注.
項目地址:https://github.com/NetEase/arrow

    本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權內(nèi)容,請點擊一鍵舉報。
    轉藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多