test_doAudit.py
4.37 KB
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
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
#!/usr/bin/python
# -*- coding: UTF-8 -*-
import unittest
import json
import urllib3
#自定义的数据库方法,improt的时候需要找到对于模块路径如commons.
import commons.ConfigDB as db
#自定义的API类和方法,improt的时候需要找到对于模块路径如commons.api.
from commons.api.login import login
from commons.api.fieldConfig import fieldConfig
from commons.api.doAudit import doAudit
from commons.api.doAdd import doAdd
#作用为禁用请求安全提示,平时默认加上上面的urllib3语句就行
urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)
#由于测试的每一个接口都写成了一个类,因此在使用这个接口时,需要实例化后再使用
lo=login()
ad=doAdd()
au=doAudit()
field=fieldConfig()
#登记单审核接口,请求数据是动态的,需要提前准备新的登记单数据,而且需要查询数据库--删除类接口类似
class test_doAudit(unittest.TestCase):
@classmethod
def setUpClass(cls):
#通过登录接口获取session
cls.se=lo.get_session("user01",allow_redirects=False)
#通过字段配置接口提前配置新增页的字段配置
cls.se.post(url=field.url,headers=field.header,json=field.body,proxies={'http': 'http://localhost:8888'})
def setUp(self):
#准备数据:新增一条登记单
self.se.post(url=ad.url,headers=ad.header,json=ad.body,proxies={'http': 'http://localhost:8888'})
#获取数据:从MYSQL获取新增登记单的id号--因为响应没有id,需要数据库查询
self.id=db.mysql_selectOne("SELECT id FROM `dili_trace`.register_bill ORDER BY id DESC LIMIT 1")[0]
def test_01_doAudit(self):
#审核通过--请求url中的需要替换为新增登记单的id
url=au.url.replace("5888", str(self.id))
#进行GET请求
re=self.se.get(url=url,headers=au.header,proxies={'http': 'http://localhost:8888'})
#打印请求结果(可删除该代码,一般只在调试时使用)
print(re.json())
#断言请求过程是否成功
self.assertEqual(re.status_code, 200)
#断言响应数据中是否存在期望字符串
self.assertTrue("'result':'操作成功'" in str(re.json()).replace(" ",""))
def test_02_doAudit(self):
#审核不通过--请求url中的需要替换为新增登记单的id
url=au.url.replace("5888", str(self.id)).replace("verifyStatus=20", "verifyStatus=30")
#进行GET请求
re=self.se.get(url=url,headers=au.header,proxies={'http': 'http://localhost:8888'})
#打印请求结果(可删除该代码,一般只在调试时使用)
print(re.json())
#断言请求过程是否成功
self.assertEqual(re.status_code, 200)
#断言响应数据中是否存在期望字符串
self.assertTrue("'result':'操作成功'" in str(re.json()).replace(" ",""))
def test_03_doAudit(self):
#审核不通过--请求url中的需要替换为新增登记单的id
url=au.url.replace("5888", str(self.id)).replace("verifyStatus=20", "verifyStatus=10")
#进行GET请求
re=self.se.get(url=url,headers=au.header,proxies={'http': 'http://localhost:8888'})
#打印请求结果(可删除该代码,一般只在调试时使用)
print(re.json())
#断言请求过程是否成功
self.assertEqual(re.status_code, 200)
#断言响应数据中是否存在期望字符串
self.assertTrue("'result':'操作成功'" in str(re.json()).replace(" ",""))
def test_04_doAudit(self):
#审核异常--审核一已审核的登记单ID
#进行GET请求
re=self.se.get(url=au.url,headers=au.header,proxies={'http': 'http://localhost:8888'})
#打印请求结果(可删除该代码,一般只在调试时使用)
print(re.json())
#断言请求过程是否成功
self.assertEqual(re.status_code, 200)
#断言响应数据中是否存在期望字符串
self.assertTrue("'result':'操作失败,数据状态已改变'" in str(re.json()).replace(" ",""))
@classmethod
def tearDownClass(cls):
cls.se.close()
if __name__ == "__main__":
unittest.main(verbosity=2)
# current_suite = unittest.TestSuite()
# current_suite.addTest(test_doAudit("test_01_doAudit"))
# runner = unittest.TextTestRunner()
# runner.run(current_suite)