本文实例为大家分享了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