亚洲精品中文免费|亚洲日韩中文字幕制服|久久精品亚洲免费|一本之道久久免费

      
      

            <dl id="hur0q"><div id="hur0q"></div></dl>

                回顧18年我的Java自動(dòng)化測(cè)試框架

                回顧18年我的Java自動(dòng)化測(cè)試框架

                目錄

                1、前言

                2、框架結(jié)構(gòu)

                2.1、app

                2.2、config

                2.3、data

                2.4、driver

                2.5、libs

                2.6、pythonProject

                2.7、result

                2.8、src

                2.9、sshPrivateKey

                2.10、startService

                2.11、target

                2.12、testng

                2.13、pom.xml

                1、前言

                18年的時(shí)候,根據(jù)項(xiàng)目組需要,編寫(xiě)了一套 Java 版的自動(dòng)化測(cè)試框架,可進(jìn)行包括 APP(Android、iOS)、H5、Web、接口的自動(dòng)化測(cè)試任務(wù)。測(cè)試報(bào)告可通過(guò) HTML 報(bào)告或 Excel 報(bào)告的方式進(jìn)行查看。此框架在項(xiàng)目組期間已落地使用并助力測(cè)試回歸時(shí)發(fā)現(xiàn)了一些問(wèn)題(BUG)。

                框架開(kāi)發(fā)完成后,只維護(hù)了一段時(shí)間,之后(離開(kāi)項(xiàng)目組)就一直到現(xiàn)在沒(méi)有再維護(hù)了,所以一些封裝的方法與框架設(shè)計(jì)思想等有些“過(guò)時(shí)”了。接下來(lái)回顧一下此框架,也算是一個(gè)框架總結(jié),為后續(xù)的升級(jí)改造做準(zhǔn)備。

                2、框架結(jié)構(gòu)

                測(cè)試框架(AllRound_Test)整體結(jié)構(gòu):

                2.1、app

                app 目錄存放手機(jī)應(yīng)用程序,分為 Android 和 iOS。當(dāng)執(zhí)行自動(dòng)化腳本時(shí),如果設(shè)置采用先安裝手機(jī)應(yīng)用程序的方式,則會(huì)根據(jù)路徑安裝指定的 APP 程序。

                2.2、config

                config 目錄存放配置文件

                app.properties 存放 Android / iOS 包名。

                browserdriver.properties 存放瀏覽器驅(qū)動(dòng)的路徑。

                data.properties 存放測(cè)試數(shù)據(jù),分為:Android、iOS、H5、接口。

                linuxdriver.properties 存放連接 Linux 的配置信息。

                mongodriver.properties 存放連接 MongoDB 的配置信息。

                sqldriver.properties 存放 MySQL 的配置信息。

                sshPrivateKey.properties 存放連接 SSH 的密鑰路徑。

                url.properties 存放訪問(wèn)的 URL 地址,分為:H5、Web。

                2.3、data

                data 目錄存放格式為 .xls 測(cè)試數(shù)據(jù),分為:Android、iOS、H5、接口。

                表格數(shù)據(jù)內(nèi)容。

                2.4、driver

                driver 目錄存放瀏覽器驅(qū)動(dòng)程序,按操作系統(tǒng)分為:Windows、Mac。

                2.5、libs

                libs 目錄,根據(jù)測(cè)試項(xiàng)目要求,使用 Jython 語(yǔ)言(即在 Java 環(huán)境下使用 Python 語(yǔ)言)。

                2.6、pythonProject

                pythonProject 目錄存放 Python 腳本文件。

                如圖,一個(gè)單文件腳本(adder.py)、一個(gè)示例項(xiàng)目(TestDemo)。

                例如 TestDemo.py 腳本(就是 Python 腳本語(yǔ)法,不需要任何修改)。

                from selenium import webdriverimport unittest, time, osimport HTMLTestRunnerdef data_dirs():BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))DATA_DIRS = (os.path.join(BASE_DIR, ‘HTMLTestRunner生成測(cè)試報(bào)告’),)d = ‘/’.join(DATA_DIRS)print(d)return dclass Baidu(unittest.TestCase):def setUp(self):self.driver = webdriver.Chrome()self.driver.implicitly_wait(10)self.base_url = “http://www.baidu.com/”self.verificationErrors = []#百度搜索用例def test_baidu_search(self):u”’百度搜索用例”’driver = self.driverdriver.get(self.base_url)driver.find_element_by_id(“kw”).send_keys(“HTNMLTestRunner”)driver.find_element_by_id(“su”).click()def tearDown(self):self.driver.quit()self.assertEqual([], self.verificationErrors)if __name__ == “TestDemo”:#測(cè)試套件testunit=unittest.TestSuite()#添加測(cè)試用例到測(cè)試套件中testunit.addTest(Baidu(“test_baidu_search”))#獲取當(dāng)前時(shí)間now = time.strftime(“%Y-%m-%d %H_%M_%S”)#定義個(gè)報(bào)告存放路徑filename = data_dirs() + ‘/’+now+’ result.html’fp = open(filename, ‘wb’)#定義測(cè)試報(bào)告runner =HTMLTestRunner.HTMLTestRunner(stream=fp, title=u’百度搜索測(cè)試報(bào)告’, description=u’用例執(zhí)行情況:’)#運(yùn)行測(cè)試用例runner.run(testunit)#關(guān)閉報(bào)告文件fp.close()

                2.7、result

                result 目錄存放測(cè)試日志與測(cè)試報(bào)告。

                測(cè)試日志。

                測(cè)試報(bào)告-測(cè)試步驟。

                測(cè)試報(bào)告-總覽。

                報(bào)錯(cuò)自動(dòng)截圖,并存儲(chǔ)在指定目錄里。

                2.8、src

                src 目錄存放基類、頁(yè)面元素、方法封裝、報(bào)告插件、測(cè)試用例、公共方法等。

                (1)base 目錄存放基類,根據(jù)不同的場(chǎng)景分類,可執(zhí)行 APP(Android、iOS)、Web、接口、Python 腳本。

                例如:BaseParpareApp_android.java (執(zhí)行手機(jī)端 Android,部分代碼

                (2)pages 目錄存放頁(yè)面元素類。

                例如:DemoPage_android.java(部分代碼)

                (3)pageshelper 目錄存放用于不同頁(yè)面的方法封裝。

                例如:WeiboPageHelper_android.java(封裝登錄,部分代碼)

                (4)plugins 目錄存放測(cè)試報(bào)告插件,支持生成 Excel 或 HTML 共三種方式的測(cè)試報(bào)告。

                (5)testcases 目錄存放測(cè)試用例。

                例如 AppTest_Weibo_android.java(授信,部分代碼)

                (6)utils 目錄存放公共方法。各種點(diǎn)擊事件、讀寫(xiě) Excel 表格、初始化數(shù)據(jù)、調(diào)用命令行、接口方法封裝、MySQL 操作(增刪改查)、鍵盤(pán)操作、SSH 命令操作、MD5 加密、MongoDB 操作(增刪改查)、驅(qū)動(dòng)本地/遠(yuǎn)程瀏覽器、封裝 Selenium 方法和常用方法、啟動(dòng)與關(guān)閉 appium 服務(wù)等。

                例如:SelectBrowser.java(打開(kāi)本地瀏覽器,部分代碼)

                2.9、sshPrivateKey

                sshPrivateKey 目錄存放用于連接 Linux 的 SSH 私鑰。

                2.10、startService

                startService 目錄存放可在命令行執(zhí)行啟動(dòng) Appium 服務(wù)的命令。

                啟動(dòng) Appium 服務(wù):

                appium –address 127.0.0.1 –port 4723 –no-reset –session-override

                2.11、target

                target 目錄存放通過(guò) Maven 編譯該項(xiàng)目后所產(chǎn)生的 .class 文件等。

                2.12、testng

                testng 目錄存放單元測(cè)試框架 TestNG 所要執(zhí)行腳本的 .xml 文件。

                例如:testng_weibo_honor7.xml(配置參數(shù),部分內(nèi)容)

                將測(cè)試用例合并為測(cè)試集。

                三種測(cè)試報(bào)告模式,選擇哪種,就把監(jiān)聽(tīng)打開(kāi)即可。

                2.13、pom.xml

                pom.xml 文件,描述了該項(xiàng)目的 Maven 坐標(biāo),依賴關(guān)系,開(kāi)發(fā)者需要遵循的規(guī)則,組織等,是項(xiàng)目級(jí)別的配置文件。

                使用 Jenkins 持續(xù)集成的方式,進(jìn)行手動(dòng)或自動(dòng)或定時(shí)觸發(fā)此文件,來(lái)進(jìn)行測(cè)試腳本的執(zhí)行。

                例如:pom_android_weibo.xml 文件(部分內(nèi)容)

                主要依賴的包 testng、appium、jxl、log4j、selenium、mysql-connector-java、okhttp、allure-testng-adaptor、mongo-java-driver 等。

                指定執(zhí)行的 TestNG 的 .xml 文件。

                整體流程:

                Jenkins(手動(dòng)/自動(dòng)/定時(shí))觸發(fā) -> Maven 的 pom.xml 文件 -> TestNG 的 .xml 文件 -> 測(cè)試集(啟動(dòng)服務(wù)、測(cè)試基類、測(cè)試用例、操作步驟、公共方法)-> 測(cè)試日志、測(cè)試報(bào)告、錯(cuò)誤截圖

                公眾號(hào):AllTests軟件測(cè)試

                鄭重聲明:本文內(nèi)容及圖片均整理自互聯(lián)網(wǎng),不代表本站立場(chǎng),版權(quán)歸原作者所有,如有侵權(quán)請(qǐng)聯(lián)系管理員(admin#wlmqw.com)刪除。
                用戶投稿
                上一篇 2022年6月19日 18:19
                下一篇 2022年6月19日 18:20

                相關(guān)推薦

                聯(lián)系我們

                聯(lián)系郵箱:admin#wlmqw.com
                工作時(shí)間:周一至周五,10:30-18:30,節(jié)假日休息