1. 程式人生 > >介面自動化測試專案的一些知識整理

介面自動化測試專案的一些知識整理

分享一下做過的介面測試的專案知識,簡單的整理了下,以後有時間會把其他的也整理下,大家有好的建議或者疑問的可以直接回復哦。
裡面的設計和具體的實現都存在不同程度的缺陷。以下都是實現完成並運用於專案中的。

Python Web Restful API 介面測試專案知識整理歸納

專案工具選擇

使用工具: Robot Framework + Jenkins + Gitlab + Jira
Robot Framework: 關鍵字驅動自動化測試框架
Python Unit Test: Python內建的單元測試框架
Gitlab : 版本控制軟體
Jenkins: 持續整合軟體
Jira: 缺陷管理工具,儲存測試用例和bug

自動化測試的工作流水線:

1.使用Robot Framework + Requests
Jenkins run job -> Sync latest code from Git lab-> Run automation(Robot Framework) -> Update case status in Jira(Use Jira rest API) -> show report on Jenkins

Details:
(1)Jenkins配置:
新建Job , 繫結Gitlab 專案地址,設定執行模式並選擇run .sh 檔案, 如果是用robot, .sh檔案export 環境變數後,pybot suite1 suite2…..
(2)Gitlab: 新建專案,本地安裝Git Client
(3)Jira 相關配置: 
需要確認專案的ProjectId和Test Cycle, Test Cycle可以由API自動建立
自動化工程工程中對Jira的相關操作,必要的引數需要從Jira rest api中獲取

(4)Robot Framework 搭建自動化測試工程
測試用例管理: Feature
-Test Suite
-Test Case
封裝自定義關鍵字:Module名字必須和Class相同, 關鍵字作為每一個方法存在,確認方法所需的返回值和輸入的引數。
配置並使用自定義的Library,再global.txt中新增新增的Library地址。

與Jira整合: 編寫更新測試用例狀態的keyword,在每個case中的tear down中使用,執行每條case更新結果。
與Jenkins整合: Jenkins需要安裝robot外掛並配置在“增加構建後步驟”選擇“Publish Robot Framework test results”

2.使用Python Unit Test + HTMLTestRunnner

1-3 與上述幾乎相同
Python Unit Test 搭建自動化測試框架工程
測試用例管理

Feature —– Package
-Test Suite —– Module
-Test Case List —– Class
-Test Case —– Method

引數模組
使用Json定義引數資料模板或使用excel存貯引數,選擇不同實現方式不同
{
“display_name”: {
“method”: “randomString”,
“arguments”: {
“supported_string_list”: [
“letters”,
“digits”,
“punctuation”
],
“min_length”: “4”,
“max_length”: “30”}
},
“email”: {
“method”: “randomEmail”,
“arguments”: {
}

“password”: {
“method”: “randomString”,
“arguments”: {
“supported_string_list”: [
“letters”,
“digits”,
“punctuation”
],
“min_length”: “6”,
“max_length”: “30”}
},
“permissions”: [],
“roles”: {
“method”: “randomParamsList”,
“arguments”: {
“parameters_list”: “roles”,
“accept_empty”: “True”}
}
}

Case Suite和Jira中case關聯方式, 實現方式有很多種,以下列舉幾個示例:
1.Unit中method name和Jira case關聯 testOS666DemoCase1
2.建立case和method對映關係 {“OS-666”:”testMethodName”}

執行方式:
根據不同需求篩選case組成case suite,用 HTMLTestRunner.HTMLTestRunner執行測試用例套件。