本文實例為大家分享了python使用unittest 測試接口的具體代碼,供大家參考,具體內容如下
1.首先使用 python 的requests 對接口進行測試
1
2
3
4
5
6
7
8
9
10
|
# TestInface.py import requests,json url = visit.get_test_url() news_url = url + 'news.info' headers = baseToken.basetoken_datas()[ 'headers' ] def new_data(data): r = requests.post(news_url,data = data,headers = headers) cnn = json.loads(r.text) return cnn |
2.使用unittest調用接口,且對接口測試的結果進行統計
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
|
# TestCase.py # -*- coding:utf-8 -*- import unittest import TestInface # 對執行的case結果進行統計 # --------------------------------------------------------------------------------------------------------------------- text = "" num_success = 0 num_fail = 0 # 測試通過 def decide_success(joggle): global num_success num_success + = 1 print_out(joggle + ":接口測試通過\n" ) return num_success # 測試不通過 def decide_fail(txt, joggle): global num_fail num_fail + = 1 print_out(joggle + ":接口測試未通過 \n錯誤信息: " + txt + "\n" ) return num_fail # 郵件內容寫入 & 客戶端輸出 def print_out(message): global text text + = "\n" + message return text # 返回值判斷 def decide_result(result, code, joggle): if result[ 'code' ] = = code: decide_success(joggle) return "pass" else : txt = u "期望返回值:" + str (code) + u " 實際返回值:" + str (result) + '\n' + result[ 'message' ] decide_fail(txt, joggle) return "fail" def decide_Count(): data = { 'num_success' : num_success, 'num_fail' : num_fail, 'text' : text } return data # -------------------------------------------------------------------------------------------------------------------- # 定義 unittest class MyTestCase(unittest.TestCase): # 初始化工作 def setUp( self ): pass # 退出清理工作 def tearDown( self ): pass def test_Case1( self ): id = 16 data = { 'id' : id } a = TestInface.new_data(data) decide_result(a, 0 , 'test_Case1' ) |
3.使用suite對case進行管理
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
# TestSuite.py # -*- coding:utf-8 -*- import unittest import TestCase def test_InterFace(): # 構造測試集 suite = unittest.TestSuite() suite.addTest(TestCase( "test_Case1" )) # unittest中的測試用例 runner = unittest.TextTestRunner() runner.run(suite) # 對測試集進行測試需要返回值 # return suite if __name__ = = '__main__' : # unittest.main(defaultTest='test_InterFace') # 執行測試 runner = unittest.TextTestRunner() runner.run(test_InterFace()) |
4.對接口的數據進行統計
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
# TestCensus.py # -*- coding:utf-8 -*- import time import TestSuite import send_email import TestCase class Test_Calss(): def census( self ): text = '' # 初始化測試起始時間 start_time = time.time() # 調用suite測試集 TestSuite.test_InterFace() # 結束執行時間計算 end_time = time.time() result = TestCase.decide_Count() # 接口測試統計說明 total_use_case = u "執行用例總數:" + str (result[ 'num_success' ] + result[ 'num_fail' ]) + \ u "\t通過數:" + str (result[ 'num_success' ]) + \ u "\t不通過數:" + str (result[ 'num_fail' ]) total_time = u "\t總共耗時:" + str ( round ((end_time - start_time), 3 )) + u '秒' text = result[ 'text' ] + total_use_case + total_time print (text) # 發生測試報告郵件 send_email.email_file(text) if __name__ = = '__main__' : Test_Calss().census() |
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。
原文鏈接:https://blog.csdn.net/xm_csdn/article/details/53301170