Commit 58ce55a3a9b0c8e2d8bcebe6376953c7e3a4cf9f
Committed by
liujiqiang
1 parent
7b71d8ba
新增用户账户和环境的参数化代码
Showing
18 changed files
with
282 additions
and
155 deletions
src/commons/MyRequest.py
... | ... | @@ -33,15 +33,18 @@ class myrequest(object): |
33 | 33 | log.info('响应body为{};'.format(res.json())) |
34 | 34 | return res |
35 | 35 | |
36 | - def post2(self,api,**kwargs): | |
36 | + def post2(self,session,api,**kwargs): | |
37 | + self.se=session | |
37 | 38 | self.api=api.split("_")[2] |
38 | 39 | self.api_num=(api.split("_")[2]+api.split("_")[1]) |
39 | - self.method=com.get_api_config(self.api,self.api_num,'method') | |
40 | - self.body_format=com.get_api_config(self.api,self.api_num,'body_format') | |
41 | - self.url=com.get_api_config(self.api,self.api_num, 'url') | |
40 | + #获取接口的请求方法,url,header,body_format,body等数据 | |
41 | + self.method=com.get_api_config(self.api,self.api,'method') | |
42 | + self.body_format=com.get_api_config(self.api,self.api,'body_format') | |
43 | + self.url=com.get_api_config(self.api,self.api, 'url') | |
44 | + self.headers=json.loads(com.get_api_config(self.api,self.api,'header')) | |
45 | + #判断请求数据类型 | |
42 | 46 | self.data=None if self.body_format=="JSON" else com.get_api_config(self.api,self.api_num,'body') |
43 | 47 | self.json=None if self.body_format=="FORM" else json.loads(com.get_api_config(self.api,self.api_num,'body')) |
44 | - self.headers=json.loads(com.get_api_config(self.api,self.api_num,'header')) | |
45 | 48 | log.info('{0:=^80}'.format('请求接口为{}'.format(api))) |
46 | 49 | log.info('请求地址为{}; 请求方式为{}; 请求body格式为{};\n 请求body为{}{};'.format( |
47 | 50 | self.url, |
... | ... | @@ -51,7 +54,7 @@ class myrequest(object): |
51 | 54 | self.json)) |
52 | 55 | |
53 | 56 | if self.method.upper()=="POST": |
54 | - res = self.se.post(self.url, data=self.data, json=self.json,proxies=self.proxies,headers=self.headers,**kwargs) | |
57 | + res = self.se.post(self.url, data=self.data, json=self.json,headers=self.headers,**kwargs) | |
55 | 58 | log.info('响应body为{};'.format(res.json())) |
56 | 59 | return res |
57 | 60 | elif self.method.upper()=="GET": |
... | ... | @@ -76,27 +79,6 @@ class myrequest(object): |
76 | 79 | def close_session(self): |
77 | 80 | self.se.close() |
78 | 81 | |
79 | -# def to_request(self,method,url,data=None,is_json=False,**kwargs): #最后加入**kwargs使可以传headers | |
80 | -# method = method.upper() | |
81 | -# if isinstance(data,str): | |
82 | -# try: | |
83 | -# data = json.load(data) #'{"mobilephone": "18911114444", "pwd": "123456", "regname": "youxiu"}' | |
84 | -# except Exception as e: | |
85 | -# # print("异常为{}".format(e)) | |
86 | -# Logger.error("异常为{}".format(e)) | |
87 | -# data = eval(data) #'{"mobilephone": '18911114444',1:"4545"}' 非json的字符串 | |
88 | -# if method == 'GET': | |
89 | -# res = self.one_session.request(method,url,params=data,**kwargs) | |
90 | -# elif method == 'POST': | |
91 | -# if is_json: | |
92 | -# res = self.one_session.request(method, url, json=data,**kwargs) | |
93 | -# else: | |
94 | -# res = self.one_session.request(method, url, data=data,**kwargs) | |
95 | -# else: | |
96 | -# res = None | |
97 | -# # print("405 METHOD NOT ALLOWED") | |
98 | -# Logger.error("METHOD NOT ALLOWED".format(method)) | |
99 | -# return res | |
100 | 82 | # |
101 | 83 | # test=myrequest() |
102 | 84 | # # 获取session |
... | ... | @@ -115,3 +97,6 @@ class myrequest(object): |
115 | 97 | # |
116 | 98 | # re3=test.post2("test_01_upStream",body="json") |
117 | 99 | # print(re3.json()) |
100 | +# a="test_04_upStream" | |
101 | +# print(a.split("_")[2]) | |
102 | +# print(a.split("_")[2]+a.split("_")[1]) | |
118 | 103 | \ No newline at end of file | ... | ... |
src/commons/MyRequest2.py deleted
100644 → 0
1 | -#!/usr/bin/python | |
2 | -# -*- coding: UTF-8 -*- | |
3 | -import requests | |
4 | -import json | |
5 | -from commons import common as com | |
6 | -from commons.Logging import Logger | |
7 | -# from requests.adapters import HTTPAdapter HTTPAdapter(max_retries=3) | |
8 | -import urllib3 | |
9 | -urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning) | |
10 | -log=Logger() | |
11 | - | |
12 | -class myrequest(object): | |
13 | - | |
14 | - def __init__(self): | |
15 | - self.timeout = 60 | |
16 | - self.max_retries = 3 | |
17 | - self.keep_alive = False | |
18 | - self.ssl_verify=False | |
19 | - self.proxies=None | |
20 | - self.allow_redirects=False | |
21 | - | |
22 | - def get(self,url,**kwargs): | |
23 | - log.info('{0:=^80}'.format('进行GET请求')) | |
24 | - log.info('请求地址为{};\n'.format(url)) | |
25 | - res = self.se.get(url, proxies=self.proxies,**kwargs) | |
26 | - log.info('响应body为{};'.format(res.json())) | |
27 | - return res | |
28 | - | |
29 | - def post(self,api,url, data=None, json=None, header=None,**kwargs): | |
30 | - log.info('{0:=^80}'.format('进行POST请求')) | |
31 | - log.info('请求地址为{};\n 请求body为{};\n'.format(url,data)) | |
32 | - res = self.se.post(url, data=data, json=json, | |
33 | - headers=header, | |
34 | - timeout=self.timeout, | |
35 | - max_retries=self.max_retries, | |
36 | - keep_alive=self.keep_alive, | |
37 | - proxies=self.proxies, | |
38 | - allow_redirects=self.allow_redirects ) | |
39 | - log.info('响应body为{};'.format(res.json())) | |
40 | - return res | |
41 | - | |
42 | - def put(self,url, data=None, **kwargs): | |
43 | - res = self.se.put(url, data=data, **kwargs) | |
44 | - return res | |
45 | - | |
46 | - def delete(self,url, **kwargs): | |
47 | - res = self.se.delete(url, **kwargs) | |
48 | - return res | |
49 | - | |
50 | - def patch(self,url, data=None, **kwargs): | |
51 | - res = self.se.patch(url,data=data, **kwargs) | |
52 | - return res | |
53 | - | |
54 | - def head(self, url, **kwargs): | |
55 | - res = self.se.patch(url,data=None, **kwargs) | |
56 | - return res | |
57 | - | |
58 | - def close(self): | |
59 | - self.se.close() | |
60 | - | |
61 | -# return res | |
62 | - | |
63 | -# test=myrequest() | |
64 | -# re=test.getSession(True) | |
65 | -# print(re.headers) | |
66 | 0 | \ No newline at end of file |
src/commons/__pycache__/ConfigDB.cpython-36.pyc
No preview for this file type
src/commons/__pycache__/Logging.cpython-36.pyc
No preview for this file type
src/commons/__pycache__/MyRequest.cpython-36.pyc
No preview for this file type
src/commons/__pycache__/MyRequest2.cpython-36.pyc
No preview for this file type
src/commons/__pycache__/__init__.cpython-36.pyc
No preview for this file type
src/commons/__pycache__/common.cpython-36.pyc
No preview for this file type
src/commons/api/__pycache__/__init__.cpython-36.pyc
No preview for this file type
src/commons/api/__pycache__/login.cpython-36.pyc
No preview for this file type
src/commons/api/__pycache__/upStream.cpython-36.pyc
No preview for this file type
src/commons/api/login.py
... | ... | @@ -28,8 +28,7 @@ class login(): |
28 | 28 | body="userName=sg_wenze&password=111111" |
29 | 29 | |
30 | 30 | def __init__(self): |
31 | - self.login_url="test2" | |
32 | - self.url=login.url | |
31 | + self.url=login.url.replace("test.uap.diligrp.com",com.get_global_config("global_data", "environment", "en") ) | |
33 | 32 | self.header=login.header |
34 | 33 | self.body=login.body |
35 | 34 | |
... | ... | @@ -37,20 +36,16 @@ class login(): |
37 | 36 | self.body=login.body.replace("sg_wenze", name) |
38 | 37 | self.body=login.body.replace("111111", password) |
39 | 38 | self.se=requests.session() |
40 | -# self.se.post(url=self.url, headers=self.header,data=self.body,**kwargs) | |
41 | 39 | self.se.post(url=login.url, headers=login.header,data=login.body,**kwargs) |
42 | 40 | return self.se |
43 | 41 | |
44 | 42 | def get_session2(self,account,**kwargs): |
45 | - self.body=login.body.replace("sg_wenze", com.get_global_config("account", "account", "sg_username01")) | |
46 | - self.body=login.body.replace("111111", com.get_global_config("account", "account", "sg_password01")) | |
43 | + self.body=self.body.replace("sg_wenze", com.get_global_config("global_data", "account", account).split("&")[0]) | |
44 | + self.body=self.body.replace("111111", com.get_global_config("global_data", "account", account).split("&")[1]) | |
47 | 45 | self.se=requests.session() |
48 | -# self.se.post(url=self.url, headers=self.header,data=self.body,**kwargs) | |
49 | - self.se.post(url=login.url, headers=login.header,data=login.body,**kwargs) | |
46 | + re=self.se.post(url=self.url, headers=self.header,data=self.body,**kwargs) | |
50 | 47 | return self.se |
51 | 48 | |
52 | - | |
53 | - | |
54 | 49 | def close_session(self): |
55 | 50 | print("close session") |
56 | 51 | self.se.close() |
... | ... | @@ -58,16 +53,16 @@ class login(): |
58 | 53 | def post(self,name,password,firmid,**kwargs): |
59 | 54 | self.body=self.body.replace("sg_wenze", name) |
60 | 55 | self.body=self.body.replace("111111", password) |
61 | -# re=requests.post(url=self.url, headers=self.header,data=self.body,proxies={'http': 'http://localhost:8888', 'https': 'http://localhost:8888'}) | |
62 | 56 | re=requests.post(url=self.url, headers=self.header,data=self.body,**kwargs) |
63 | 57 | |
64 | 58 | print(re.headers) |
65 | 59 | return re |
66 | - | |
67 | 60 | |
68 | 61 | |
69 | 62 | # t=login() |
70 | -# | |
63 | +# print(t.url) | |
64 | +# t.get_session2("user01",proxies={'http': 'http://localhost:8888', 'https': 'http://localhost:8888'},allow_redirects=False) | |
65 | + | |
71 | 66 | # t.post("sg_wenze", "111111",proxies={'http': 'http://localhost:8888', 'https': 'http://localhost:8888'}) |
72 | 67 | # def tt(**kwargs): |
73 | 68 | # print(kwargs) | ... | ... |
src/config/account.conf
src/config/api/upStream.conf
1 | 1 | # -*- coding: UTF-8 -*- |
2 | - | |
3 | -[upStream01] | |
2 | +[upStream] | |
4 | 3 | method=post |
5 | 4 | url=http://test.trace.diligrp.com:8393/upStream/listPage.action |
6 | 5 | body_format=JSON |
... | ... | @@ -17,8 +16,36 @@ header={ |
17 | 16 | "Accept-Encoding": "gzip,deflate", |
18 | 17 | "Accept-Language": "zh-CN,zh-TW;q=0.9,zh;q=0.8,en;q=0.7"} |
19 | 18 | |
19 | +[upStream01] | |
20 | +body={"rows":10,"page":1,"sort":"id","order":"desc","metadata":{"created":"{\"provider\":\"datetimeProvider\",\"index\":10,\"field\":\"created\"}","upORdown":"{\"provider\":\"userFlagProvider\",\"index\":20,\"field\":\"upORdown\"}","upstreamType":"{\"provider\":\"upStreamTypeProvider\",\"index\":30,\"field\":\"upstreamType\"}"}} | |
21 | + | |
22 | + | |
23 | +[upStream02] | |
24 | +body={"rows":10,"page":1,"sort":"id","order":"desc","metadata":{"created":"{\"provider\":\"datetimeProvider\",\"index\":10,\"field\":\"created\"}","upORdown":"{\"provider\":\"userFlagProvider\",\"index\":20,\"field\":\"upORdown\"}","upstreamType":"{\"provider\":\"upStreamTypeProvider\",\"index\":30,\"field\":\"upstreamType\"}"}} | |
25 | + | |
26 | + | |
27 | +[upStream03] | |
28 | +body={"rows":10,"page":1,"sort":"id","order":"desc","metadata":{"created":"{\"provider\":\"datetimeProvider\",\"index\":10,\"field\":\"created\"}","upORdown":"{\"provider\":\"userFlagProvider\",\"index\":20,\"field\":\"upORdown\"}","upstreamType":"{\"provider\":\"upStreamTypeProvider\",\"index\":30,\"field\":\"upstreamType\"}"}} | |
29 | + | |
30 | + | |
31 | +[upStream04] | |
20 | 32 | body={"rows":10,"page":1,"sort":"id","order":"desc","metadata":{"created":"{\"provider\":\"datetimeProvider\",\"index\":10,\"field\":\"created\"}","upORdown":"{\"provider\":\"userFlagProvider\",\"index\":20,\"field\":\"upORdown\"}","upstreamType":"{\"provider\":\"upStreamTypeProvider\",\"index\":30,\"field\":\"upstreamType\"}"}} |
21 | 33 | |
22 | 34 | |
35 | +[upStream05] | |
36 | +body={"rows":10,"page":1,"sort":"id","order":"desc","metadata":{"created":"{\"provider\":\"datetimeProvider\",\"index\":10,\"field\":\"created\"}","upORdown":"{\"provider\":\"userFlagProvider\",\"index\":20,\"field\":\"upORdown\"}","upstreamType":"{\"provider\":\"upStreamTypeProvider\",\"index\":30,\"field\":\"upstreamType\"}"}} | |
37 | + | |
38 | + | |
39 | +[upStream06] | |
40 | +body={"rows":10,"page":1,"sort":"id","order":"desc","metadata":{"created":"{\"provider\":\"datetimeProvider\",\"index\":10,\"field\":\"created\"}","upORdown":"{\"provider\":\"userFlagProvider\",\"index\":20,\"field\":\"upORdown\"}","upstreamType":"{\"provider\":\"upStreamTypeProvider\",\"index\":30,\"field\":\"upstreamType\"}"}} | |
41 | + | |
42 | + | |
43 | +[upStream07] | |
44 | +body={"rows":10,"page":1,"sort":"id","order":"desc","metadata":{"created":"{\"provider\":\"datetimeProvider\",\"index\":10,\"field\":\"created\"}","upORdown":"{\"provider\":\"userFlagProvider\",\"index\":20,\"field\":\"upORdown\"}","upstreamType":"{\"provider\":\"upStreamTypeProvider\",\"index\":30,\"field\":\"upstreamType\"}"}} | |
45 | + | |
23 | 46 | expect_response={"code":"200","data":951,"message":"创建客户订单成功","result":"创建客户订单成功","success":true} |
24 | 47 | |
48 | + | |
49 | + | |
50 | + | |
51 | + | ... | ... |
src/config/global_data.conf
1 | 1 | # -*- coding: UTF-8 -*- |
2 | 2 | |
3 | +[account] | |
4 | +user01=sg_wenze&111111 | |
5 | +user02=sy_wenze&111111 | |
6 | +user03=hz_wenze&111111 | |
7 | + | |
8 | +[environment] | |
9 | +en=test.uap.diligrp.com | |
10 | + | |
11 | +[Database] | |
12 | +dbhost=10.28.10.169 | |
13 | +dbport=3306 | |
14 | +dbname=trace | |
15 | +dbuser=root | |
16 | +dbpassword=123456 | |
17 | +dbcharset=utf8 | |
18 | + | |
19 | + | |
20 | + | |
3 | 21 | |
4 | 22 | [RequstHeader_fresh] |
5 | 23 | header = { |
... | ... | @@ -35,11 +53,4 @@ instert_coupon=INSERT INTO `customer_coupon` VALUES ('10014', '0', '00010966', ' |
35 | 53 | |
36 | 54 | |
37 | 55 | |
38 | -[Database] | |
39 | -dbhost=10.28.10.169 | |
40 | -dbport=3306 | |
41 | -dbname=tms | |
42 | -dbuser=root | |
43 | -dbpassword=123456 | |
44 | -dbcharset=utf8 | |
45 | 56 | ... | ... |
src/testcase/test_tms_myrequest/test_upStream.py
... | ... | @@ -7,83 +7,103 @@ from commons import ConfigDB as db |
7 | 7 | from commons import common as com |
8 | 8 | from commons.api.login import login |
9 | 9 | from commons.api.upStream import upStream |
10 | +from commons.MyRequest import myrequest | |
10 | 11 | urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning) |
11 | 12 | ll=login() |
12 | 13 | uu=upStream() |
14 | +my=myrequest() | |
15 | + | |
13 | 16 | |
14 | -#列表查询 | |
15 | 17 | class test_upStream(unittest.TestCase): |
16 | - | |
18 | + '''分别封装各个接口和数据,数据处理过程写入代码''' | |
17 | 19 | @classmethod |
18 | 20 | def setUpClass(cls): |
19 | - #新增登记单 | |
21 | + #获取session | |
20 | 22 | cls.se=ll.get_session("sg_wenze", "111111") |
21 | - print(cls.se) | |
22 | - #由于可能有多种情况所以使用传统的setup | |
23 | + | |
23 | 24 | def setUp(self): |
24 | -# #新增登记单 | |
25 | 25 | pass |
26 | 26 | |
27 | 27 | def test_01_upStream(self): |
28 | 28 | #成功查询上下游企业,无过滤条件---直接调用登陆类的方法,session可以保持一致 |
29 | - url=uu.url | |
30 | - header=uu.header | |
31 | - body=uu.body | |
32 | - self.se.post(url=url,headers=header,json=body) | |
33 | -# re=uu.post(url=url,headers=header,json=body) | |
34 | -# print(self.se.json()) | |
35 | - | |
29 | + #直接把接口和数据一起封装,测试时直接调用接口数据(请求数据没有修改的情况) | |
30 | + re=self.se.post(url=uu.url,headers=uu.header,json=uu.body) | |
31 | + print(re.json()) | |
32 | + self.assertEqual(re.status_code, 200) | |
33 | + | |
36 | 34 | def test_02_upStream(self): |
37 | - #成功查询上下游企业,加入企业/个人名称过滤条件----直接调用自己类的方法,session和其他用了可能不一致 | |
38 | - url=uu.url | |
39 | - header=uu.header | |
35 | + #成功查询上下游企业,加入企业/个人名称过滤条件----直接调用登陆类的方法,session可以保持一致 | |
36 | + #直接把接口和数据一起封装,测试时直接调用接口数据(需要修改请求数据的情况) | |
40 | 37 | body=uu.body.copy() |
41 | 38 | body["likeName"]="111" |
42 | 39 | print("test_02_upStream",body) |
43 | - re=uu.post("sg_wenze", "111111",url=url,headers=header,json=body) | |
40 | + re=self.se.post(url=uu.url,headers=uu.header,json=uu.body) | |
44 | 41 | print(re.json()) |
45 | - | |
42 | + self.assertEqual(re.status_code, 200) | |
43 | + | |
46 | 44 | def test_03_upStream(self): |
47 | - #成功查询上下游企业,加入业户名称名称过滤条件----直接调用自己类的方法,session和其他用了可能不一致 | |
48 | - url=uu.url | |
49 | - header=uu.header | |
50 | - body=uu.body.copy() | |
51 | - body["likeUserName"]="地利人和" | |
52 | - print("test_03_upStream",body) | |
53 | - re=uu.post("sg_wenze", "111111",url=url,headers=header,json=body) | |
45 | + #成功查询上下游企业,加入业户名称名称过滤条件---实验直接传session给接口类使用(封装使用) | |
46 | + re=uu.post2(self.se,"sg_wenze", "111111",url=uu.url,headers=uu.header,json=uu.body) | |
47 | + print("test_03_upStream",re.json()) | |
54 | 48 | print(re.json()) |
55 | - | |
49 | + self.assertEqual(re.status_code, 200) | |
50 | + | |
56 | 51 | def test_04_upStream(self): |
57 | - #成功查询上下游企业,加入业户名称名称过滤条件---实验直接传session给接口类使用 | |
58 | - url=uu.url | |
59 | - header=uu.header | |
60 | - body=uu.body | |
61 | -# self.se.post(url=url,headers=header,json=body) | |
62 | - re=uu.post2(self.se,"sg_wenze", "111111",url=url,headers=header,json=body) | |
52 | + #成功查询上下游企业,加入业户名称名称过滤条件 | |
53 | + #使用公共的请求方法,数据需要单独维护 | |
54 | + re=my.post2(self.se,"test_01_upStream") | |
63 | 55 | print("test_04_upStream",re.json()) |
64 | - | |
65 | - | |
66 | - def tearDown(self): | |
56 | + self.assertEqual(re.status_code, 200) | |
67 | 57 | |
58 | + def tearDown(self): | |
68 | 59 | print("tearDown") |
69 | - | |
60 | + | |
70 | 61 | @classmethod |
71 | 62 | def tearDownClass(cls): |
63 | + cls.se.close() | |
64 | + | |
65 | + | |
66 | + | |
67 | +class test_demo(unittest.TestCase): | |
68 | + '''提供一个封装好的公共方法,请求数据需求提前存储到配置文件''' | |
69 | + @classmethod | |
70 | + def setUpClass(cls): | |
71 | + #获取session | |
72 | + cls.se=ll.get_session("sg_wenze", "111111") | |
73 | + | |
74 | + def setUp(self): | |
72 | 75 | pass |
76 | + | |
77 | + def test_01_demo(self): | |
78 | + #成功查询上下游企业,加入业户名称名称过滤条件 | |
79 | + #使用公共的请求方法,数据需要单独维护 | |
80 | + re=my.post2(self.se,"test_01_upStream") | |
81 | + print("test_01_upStream",re.json()) | |
82 | + self.assertEqual(re.status_code, 200) | |
83 | + | |
84 | + def tearDown(self): | |
85 | + print("tearDown") | |
86 | + | |
87 | + @classmethod | |
88 | + def tearDownClass(cls): | |
89 | + cls.se.close() | |
90 | + | |
91 | + | |
92 | + | |
73 | 93 | |
74 | 94 | if __name__ == "__main__": |
75 | 95 | #unittest.main()方法会搜索该模块文件下所有以test开头的测试用例方法,并自动执行它们。 |
76 | 96 | #如果不加下面这个语句,那么在通过unittest的方法添加测试用例时,这个文件里面的用例不会被搜索到。 |
77 | 97 | |
78 | - unittest.main(verbosity=2) | |
98 | +# unittest.main(verbosity=2) | |
79 | 99 | |
80 | 100 | # # 以下代码可以调试单个测试用例,用例中打印的语句不会展示到控制台,使用前需要注释上面的代码unittest.main(),如果不使用下面代码, |
81 | 101 | # # 在有unittest.main()的情况下点击ctrl+f11,会直接运行当前页面所有用例,并且把用例用有打印的语句显示到控制台 |
82 | -# current_suite = unittest.TestSuite() | |
83 | -# current_suite.addTest(submitOrder("test_01")) | |
102 | + current_suite = unittest.TestSuite() | |
103 | + current_suite.addTest(test_upStream("test_08_upStream")) | |
84 | 104 | # #以列表形式添加多个测试用例 |
85 | 105 | # # current_suite.addTests([submitOrder_With_Coupon("test_01"),submitOrder_With_Coupon("test_02")]) |
86 | 106 | # # 执行测试 |
87 | -# runner = unittest.TextTestRunner() | |
88 | -# #runner.run(可以直接添加测试用例如submitOrder_With_Coupon("test_01")) | |
89 | -# runner.run(current_suite) | |
90 | 107 | \ No newline at end of file |
108 | + runner = unittest.TextTestRunner() | |
109 | +## runner.run(可以直接添加测试用例如submitOrder_With_Coupon("test_01")) | |
110 | + runner.run(current_suite) | |
91 | 111 | \ No newline at end of file | ... | ... |
src/testcase/test_tms_myrequest/test_upStream2.py
0 → 100644
1 | +#!/usr/bin/python | |
2 | +# -*- coding: UTF-8 -*- | |
3 | +import unittest | |
4 | +import json | |
5 | +import urllib3 | |
6 | +from commons import ConfigDB as db | |
7 | +from commons import common as com | |
8 | +from commons.api.login import login | |
9 | +from commons.api.upStream import upStream | |
10 | +from commons.MyRequest import myrequest | |
11 | +urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning) | |
12 | +ll=login() | |
13 | +uu=upStream() | |
14 | +my=myrequest() | |
15 | + | |
16 | +#列表查询 | |
17 | +class test_upStream2(unittest.TestCase): | |
18 | + | |
19 | + @classmethod | |
20 | + def setUpClass(cls): | |
21 | + #新增登记单 | |
22 | + cls.se=ll.get_session2("user01") | |
23 | + | |
24 | + def setUp(self): | |
25 | + pass | |
26 | + | |
27 | + def test_01_upStream(self): | |
28 | + #成功查询上下游企业,无过滤条件---直接调用登陆类的方法,session可以保持一致 | |
29 | + #直接把接口和数据一起封装,测试时直接调用接口数据(请求数据没有修改的情况) | |
30 | + re=self.se.post(url=uu.url,headers=uu.header,json=uu.body) | |
31 | + print(re.json()) | |
32 | + self.assertEqual(re.status_code, 200) | |
33 | + | |
34 | + def test_02_upStream(self): | |
35 | + #成功查询上下游企业,加入企业/个人名称过滤条件----直接调用登陆类的方法,session可以保持一致 | |
36 | + #直接把接口和数据一起封装,测试时直接调用接口数据(需要修改请求数据的情况) | |
37 | + body=uu.body.copy() | |
38 | + body["likeName"]="111" | |
39 | + print("test_02_upStream",body) | |
40 | + re=self.se.post(url=uu.url,headers=uu.header,json=uu.body) | |
41 | + print(re.json()) | |
42 | + self.assertEqual(re.status_code, 200) | |
43 | + | |
44 | + def test_03_upStream(self): | |
45 | + #成功查询上下游企业,加入业户名称名称过滤条件---实验直接传session给接口类使用(封装使用) | |
46 | + re=uu.post2(self.se,"sg_wenze", "111111",url=uu.url,headers=uu.header,json=uu.body) | |
47 | + print("test_03_upStream",re.json()) | |
48 | + print(re.json()) | |
49 | + self.assertEqual(re.status_code, 200) | |
50 | + | |
51 | + def test_04_upStream(self): | |
52 | + #成功查询上下游企业,加入业户名称名称过滤条件 | |
53 | + #使用公共的请求方法,数据需要单独维护 | |
54 | + re=my.post2(self.se,"test_01_upStream") | |
55 | + print("test_04_upStream",re.json()) | |
56 | + self.assertEqual(re.status_code, 200) | |
57 | + | |
58 | + def tearDown(self): | |
59 | + print("tearDown") | |
60 | + | |
61 | + @classmethod | |
62 | + def tearDownClass(cls): | |
63 | + cls.se.close() | |
64 | + | |
65 | + | |
66 | +if __name__ == "__main__": | |
67 | +#unittest.main()方法会搜索该模块文件下所有以test开头的测试用例方法,并自动执行它们。 | |
68 | +#如果不加下面这个语句,那么在通过unittest的方法添加测试用例时,这个文件里面的用例不会被搜索到。 | |
69 | + | |
70 | +# unittest.main(verbosity=2) | |
71 | + | |
72 | +# # 以下代码可以调试单个测试用例,用例中打印的语句不会展示到控制台,使用前需要注释上面的代码unittest.main(),如果不使用下面代码, | |
73 | +# # 在有unittest.main()的情况下点击ctrl+f11,会直接运行当前页面所有用例,并且把用例用有打印的语句显示到控制台 | |
74 | + current_suite = unittest.TestSuite() | |
75 | + current_suite.addTest(test_upStream2("test_01_upStream")) | |
76 | +# #以列表形式添加多个测试用例 | |
77 | +# # current_suite.addTests([submitOrder_With_Coupon("test_01"),submitOrder_With_Coupon("test_02")]) | |
78 | +# # 执行测试 | |
79 | + runner = unittest.TextTestRunner() | |
80 | +## runner.run(可以直接添加测试用例如submitOrder_With_Coupon("test_01")) | |
81 | + runner.run(current_suite) | |
0 | 82 | \ No newline at end of file | ... | ... |
src/testcase/test_tms_myrequest/test_upStream3.py
0 → 100644
1 | +#!/usr/bin/python | |
2 | +# -*- coding: UTF-8 -*- | |
3 | +import unittest | |
4 | +import json | |
5 | +import urllib3 | |
6 | +from commons import ConfigDB as db | |
7 | +from commons import common as com | |
8 | +from commons.api.login import login | |
9 | +from commons.api.upStream import upStream | |
10 | +from commons.MyRequest import myrequest | |
11 | +urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning) | |
12 | +ll=login() | |
13 | +uu=upStream() | |
14 | +my=myrequest() | |
15 | + | |
16 | +class test_upStream3(unittest.TestCase): | |
17 | + '''每个接口都单独提供一个登录方法''' | |
18 | + | |
19 | + @classmethod | |
20 | + def setUpClass(cls): | |
21 | + pass | |
22 | + def setUp(self): | |
23 | + pass | |
24 | + | |
25 | + def test_01_upStream(self): | |
26 | + #成功查询上下游企业,加入企业/个人名称过滤条件----直接调用自己类的方法,session和其他用了可以不一致 | |
27 | + #直接把接口和数据一起封装,测试时直接调用接口数据(需要修改请求数据的情况) | |
28 | + body=uu.body.copy() | |
29 | + body["likeName"]="111" | |
30 | + re=uu.post("sg_wenze", "111111",url=uu.url,headers=uu.header,json=body) | |
31 | + print(re.json()) | |
32 | + self.assertEqual(re.status_code, 200) | |
33 | + | |
34 | + def test_02_upStream(self): | |
35 | + #成功查询上下游企业,加入业户名称名称过滤条件----直接调用自己类的方法,session和其他用了可以不一致 | |
36 | + body=uu.body.copy() | |
37 | + body["likeUserName"]="地利人和" | |
38 | + re=uu.post("sg_wenze", "111111",url=uu.url,headers=uu.header,json=body) | |
39 | + print(re.json()) | |
40 | + self.assertEqual(re.status_code, 200) | |
41 | + | |
42 | + def tearDown(self): | |
43 | + pass | |
44 | + @classmethod | |
45 | + def tearDownClass(cls): | |
46 | + pass | |
47 | + | |
48 | + | |
49 | + | |
50 | +if __name__ == "__main__": | |
51 | +#unittest.main()方法会搜索该模块文件下所有以test开头的测试用例方法,并自动执行它们。 | |
52 | +#如果不加下面这个语句,那么在通过unittest的方法添加测试用例时,这个文件里面的用例不会被搜索到。 | |
53 | + | |
54 | +# unittest.main(verbosity=2) | |
55 | + | |
56 | +# # 以下代码可以调试单个测试用例,用例中打印的语句不会展示到控制台,使用前需要注释上面的代码unittest.main(),如果不使用下面代码, | |
57 | +# # 在有unittest.main()的情况下点击ctrl+f11,会直接运行当前页面所有用例,并且把用例用有打印的语句显示到控制台 | |
58 | + current_suite = unittest.TestSuite() | |
59 | + current_suite.addTest(test_upStream3("test_08_upStream")) | |
60 | +# #以列表形式添加多个测试用例 | |
61 | +# # current_suite.addTests([submitOrder_With_Coupon("test_01"),submitOrder_With_Coupon("test_02")]) | |
62 | +# # 执行测试 | |
63 | + runner = unittest.TextTestRunner() | |
64 | +## runner.run(可以直接添加测试用例如submitOrder_With_Coupon("test_01")) | |
65 | + runner.run(current_suite) | |
0 | 66 | \ No newline at end of file | ... | ... |