日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

回顾18年我的Java自动化测试框架

發布時間:2023/12/9 java 51 豆豆
生活随笔 收集整理的這篇文章主要介紹了 回顾18年我的Java自动化测试框架 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目錄

1、前言

2、框架結構

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年的時候,根據項目組需要,編寫了一套 Java 版的自動化測試框架,可進行包括 APP(Android、iOS)、H5、Web、接口的自動化測試任務。測試報告可通過 HTML 報告或 Excel 報告的方式進行查看。此框架在項目組期間已落地使用并助力測試回歸時發現了一些問題(BUG)。

框架開發完成后,只維護了一段時間,之后(離開項目組)就一直到現在沒有再維護了,所以一些封裝的方法與框架設計思想等有些“過時”了。接下來回顧一下此框架,也算是一個框架總結,為后續的升級改造做準備。

2、框架結構

測試框架(AllRound_Test)整體結構:

2.1、app

app 目錄存放手機應用程序,分為 Android 和 iOS。當執行自動化腳本時,如果設置采用先安裝手機應用程序的方式,則會根據路徑安裝指定的 APP 程序。

2.2、config

config 目錄存放配置文件。

app.properties 存放 Android / iOS 包名。

browserdriver.properties 存放瀏覽器驅動的路徑。

data.properties 存放測試數據,分為:Android、iOS、H5、接口。

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

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

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

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

url.properties 存放訪問的 URL 地址,分為:H5、Web。

2.3、data

data 目錄存放格式為 .xls 測試數據,分為:Android、iOS、H5、接口。

表格數據內容。

2.4、driver

driver 目錄存放瀏覽器驅動程序,按操作系統分為:Windows、Mac。

2.5、libs

libs 目錄,根據測試項目要求,使用 Jython 語言(即在 Java 環境下使用 Python 語言)。

2.6、pythonProject

pythonProject 目錄存放 Python 腳本文件。

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

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

from selenium import webdriver import unittest, time, os import HTMLTestRunnerdef data_dirs():BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))DATA_DIRS = (os.path.join(BASE_DIR, 'HTMLTestRunner生成測試報告'),)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":#測試套件testunit=unittest.TestSuite()#添加測試用例到測試套件中testunit.addTest(Baidu("test_baidu_search"))#獲取當前時間now = time.strftime("%Y-%m-%d %H_%M_%S")#定義個報告存放路徑filename = data_dirs() + '/'+now+' result.html'fp = open(filename, 'wb')#定義測試報告runner =HTMLTestRunner.HTMLTestRunner(stream=fp, title=u'百度搜索測試報告', description=u'用例執行情況:')#運行測試用例runner.run(testunit)#關閉報告文件fp.close()

?

2.7、result

result 目錄存放測試日志與測試報告。

測試日志。

測試報告-測試步驟。

測試報告-總覽。

報錯自動截圖,并存儲在指定目錄里。

2.8、src

src 目錄存放基類、頁面元素、方法封裝、報告插件、測試用例、公共方法等。

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

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

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

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

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

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

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

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

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

(6)utils 目錄存放公共方法。各種點擊事件、讀寫 Excel 表格、初始化數據、調用命令行、接口方法封裝、MySQL 操作(增刪改查)、鍵盤操作、SSH 命令操作、MD5 加密、MongoDB 操作(增刪改查)、驅動本地/遠程瀏覽器、封裝 Selenium 方法和常用方法、啟動與關閉 appium 服務等。

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

2.9、sshPrivateKey

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

2.10、startService

startService 目錄存放可在命令行執行啟動 Appium 服務的命令。

啟動 Appium 服務:

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

2.11、target

target 目錄存放通過 Maven 編譯該項目后所產生的 .class 文件等。

2.12、testng

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

例如:testng_weibo_honor7.xml(配置參數,部分內容)

將測試用例合并為測試集。

三種測試報告模式,選擇哪種,就把監聽打開即可。

2.13、pom.xml

pom.xml 文件,描述了該項目的 Maven 坐標,依賴關系,開發者需要遵循的規則,組織等,是項目級別的配置文件。

使用 Jenkins 持續集成的方式,進行手動或自動或定時觸發此文件,來進行測試腳本的執行。

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

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

指定執行的 TestNG 的 .xml 文件。

整體流程:

Jenkins(手動/自動/定時)觸發 -> Maven 的 pom.xml 文件 -> TestNG 的 .xml 文件 -> 測試集(啟動服務、測試基類、測試用例、操作步驟、公共方法)-> 測試日志、測試報告、錯誤截圖

精彩推薦

面試筆試系列

思維導圖系列

Linux常用命令壁紙

接口Requests系列

測試框架pytest系列

Jmeter快速上手之接口測試

自動化測試框架結構圖

移動安全框架(MobSF)

總結

以上是生活随笔為你收集整理的回顾18年我的Java自动化测试框架的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。