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

<optgroup id="cczp1"><ruby id="cczp1"><cite id="cczp1"></cite></ruby></optgroup>
  • <acronym id="cczp1"></acronym>
    <acronym id="cczp1"><option id="cczp1"><ol id="cczp1"></ol></option></acronym>
    <delect id="cczp1"></delect>
    <center id="cczp1"></center>
    <delect id="cczp1"></delect><em id="cczp1"><button id="cczp1"><blockquote id="cczp1"></blockquote></button></em>
    1. <optgroup id="cczp1"><td id="cczp1"><dfn id="cczp1"></dfn></td></optgroup>

      回顧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é)假日休息