公司計畫系統的開展介面自動化測試,需要我這邊調研一下主流的介面測試框架給後端測試(主要測試介面)的同事介紹一下每個框架的特定和使用方式。後端同事根據他們介面的特點提出一下需求,看哪個框架更適合我們。
1、介面編寫方便。
2、方便除錯介面。
3、支援資料初始化。
4、生成測試報告。
5、支援引數化。
優點
缺點
*** settings ***
library requestslibrary
library collections
*** test cases ***
test_get_event_list # 查詢發布會(get請求)
$= create dictionary eid=1
create session event
$= get request event /get_event_list/ params=$
should be equal as strings $ 200
log $
$ set variable $
#斷言結果
$ get from dictionary $ message
should be equal $ success
$ get from dictionary $ status
$ evaluate int(200)
should be equal $ $
結果:不考慮,沒人願意這麼寫介面用例。
優點
缺點
總結:不考慮,介面編寫不方便,最主要是不能生成測試報告,如果做介面效能的話可以考慮。
優點:
缺點:
[}}
},, "method": "post",
"date":
},"validate": [,,
]}}]
總結:可以考慮,至於介面資料的初始化可能需要單獨處理。
doc:
bdd行為驅動測試框架。
優點:
缺點:
行為描述檔案:
## test post request
* post "" inte***ce
|key | status_code|
|------|-----------|
|value1|200 |
|value2|200 |
|value3|200 |
測試指令碼:
……
@step("post inte***ce ")
def test_get_request(url, table):
values =
status_codes =
for word in table.get_column_values_with_name("key"):
for word in table.get_column_values_with_name("status_code"):
for i in range(len(values)):
r = requests.post(url, data=)
result = r.json()
assert r.status_code == int(status_codes[i])
總結:推薦使用,bdd有一定門檻,看測試人員的學些能力和接受速度。
doc:
利用現有的框架和庫自己定製。
優點:
缺點:
資料檔案:
,
"test_case2": ,
"test_case3": ,
"test_case4": }
測試用例:
import requests
import unittest
from ddt import ddt, file_data
@ddtclass inte***cetest(unittest.testcase):
def setup(self):
self.url = ""
def teardown(self):
print(self.result)
@file_data("./data/test_data_dict.json")
def test_post_request(self, key, status_code):
r = requests.post(self.url, data=)
self.result = r.json()
self.assertequal(r.status_code, status_code)
總結:推薦使用,**相對簡單,功能足夠靈活。
我花了兩天時間整理這些框架,其實重點就是了解httprunner 和 gauge 。
yghttprunner 沒有編輯器外掛程式,本身就是乙個yaml/json配置檔案,所以配置寫錯了,但只要是合法的yaml/json格式,也看不出來,只有執行的過後才知道。就像你用記事本寫**一樣,只有執行了才知道**有沒有寫錯。
另外,擴充套件起來也不是特別方便,單獨用python實現一些函式:在json檔案中
"}
以這樣的方式引用gen_random_string()
函式。
gauge我已經分享過兩篇基礎文章了,雖然用bdd拿來做介面理念不搭,但並不是不可以,唯一的缺點是用bdd來描述介面行為不合適,其他的都沒毛病,可以引數化,斷言寫起來也簡單,測試報告也漂亮,本質上還是用python實現一些功能,所以非常靈活。
unittest + requests + htmltestrunner是我最熟悉的方案,幾乎沒什麼短板。以前通過這種方案寫過很多測試用例,這次把tdd加上似乎更完美了。
主流php框架對比
最近簡單的使用了目前在國內用的比較多的幾個主流國外php框架 不包括國內框架 大致對這些框架有個直觀上的感受,簡單分享一下,對於哪些做框架選型的時候,權當乙個參考。主要參考的框架包括 codeigniter cakephp zendframework symfony 說明 我對很多框架也沒有認真使用...
對比主流深度學習框架
現在的主要的框架主要是呈以上的排名分部 tensorflow theano keras lasagne caffe dsstne torch mxnet dl4j cognitive toolkit主要是有以上這十種框架。是乙個基於資料流程式設計 dataflow programming 的符號數學...
android測試框架對比
最近花了一些時間來調研android的測試框架,除了需要適合做ui測試,還需要保證選取的框架有以下幾點特性 robotium athrun tmts monkeyrunner uiautomator 實際使用後,發現uiautomator沒有提供測試結果報告,這一點是硬傷啊 不過還是有解決辦法的,把...