Commit 7b71d8ba7b0a60b59dcb41f1b87d16369eec3e90
Committed by
liujiqiang
1 parent
1059129c
更新关键字代码
Showing
17 changed files
with
460 additions
and
273 deletions
src/commons/MyRequest.py
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 getSession(self,proxies=None): | |
23 | - if proxies: | |
24 | - self.proxies={'http': 'http://localhost:8888', 'https': 'http://localhost:8888'} | |
25 | - se=requests.session() | |
26 | - url=com.get_api_config('login', 'login01', 'url') | |
27 | - header=json.loads(com.get_api_config('login', 'login01', 'header')) | |
28 | - body=com.get_api_config('login', 'login01', 'body') | |
29 | - r=se.post(url,data=body,headers=header,allow_redirects=False,proxies=self.proxies) | |
30 | -# assert r.status_code==200,"请检查登录信息" | |
31 | - print(r.status_code) | |
32 | - self.se=se | |
33 | - return self.se | |
34 | - | |
35 | - def get(self,url,**kwargs): | |
36 | - log.info('{0:=^80}'.format('进行GET请求')) | |
37 | - log.info('请求地址为{};\n'.format(url)) | |
38 | - res = self.se.get(url, proxies=self.proxies,**kwargs) | |
39 | - log.info('响应body为{};'.format(res.json())) | |
40 | - return res | |
41 | - | |
42 | - def post(self,url, data=None, json=None, **kwargs): | |
43 | - log.info('{0:=^80}'.format('进行POST请求')) | |
44 | - log.info('请求地址为{};\n 请求body为{};\n'.format(url,data)) | |
45 | - res = self.se.post(url, data=data, json=json,proxies=self.proxies,**kwargs) | |
46 | - log.info('响应body为{};'.format(res.json())) | |
47 | - return res | |
48 | - | |
49 | - def post2(self,api,**kwargs): | |
50 | - self.api=api.split("_")[2] | |
51 | - self.api_num=(api.split("_")[2]+api.split("_")[1]) | |
52 | - self.method=com.get_api_config(self.api,self.api_num,'method') | |
53 | - self.body_format=com.get_api_config(self.api,self.api_num,'body_format') | |
54 | - self.url=com.get_api_config(self.api,self.api_num, 'url') | |
55 | - self.data=None if self.body_format=="JSON" else com.get_api_config(self.api,self.api_num,'body') | |
56 | - self.json=None if self.body_format=="FORM" else json.loads(com.get_api_config(self.api,self.api_num,'body')) | |
57 | - self.headers=json.loads(com.get_api_config(self.api,self.api_num,'header')) | |
58 | - log.info('{0:=^80}'.format('请求接口为{}'.format(api))) | |
59 | - log.info('请求地址为{}; 请求方式为{}; 请求body格式为{};\n 请求body为{}{};'.format( | |
60 | - self.url, | |
61 | - self.method, | |
62 | - self.body_format, | |
63 | - self.data, | |
64 | - self.json)) | |
65 | - | |
66 | - if self.method.upper()=="POST": | |
67 | - res = self.se.post(self.url, data=self.data, json=self.json,proxies=self.proxies,headers=self.headers,**kwargs) | |
68 | - log.info('响应body为{};'.format(res.json())) | |
69 | - return res | |
70 | - elif self.method.upper()=="GET": | |
71 | - res = self.se.GET(self.url,proxies=self.proxies,**kwargs) | |
72 | - log.info('响应body为{};'.format(res.json())) | |
73 | - return res | |
74 | - elif self.method.upper()=="PUT": | |
75 | - res = self.se.put(self.self.url, data=self.data, json=self.json,proxies=self.proxies,**kwargs) | |
76 | - log.info('响应body为{};'.format(res.json())) | |
77 | - return res | |
78 | - elif self.method.upper()=="DELETE": | |
79 | - res = self.se.delete(self.self.url,proxies=self.proxies,**kwargs) | |
80 | - log.info('响应body为{};'.format(res.json())) | |
81 | - return res | |
82 | - elif self.method.upper()=="HEAD": | |
83 | - res = self.se.head(self.url,proxies=self.proxies,**kwargs) | |
84 | - log.info('响应body为{};'.format(res.json())) | |
85 | - return res | |
86 | - else : | |
87 | - raise Exception("Request method error") | |
88 | - | |
89 | - def close_session(self): | |
90 | - self.se.close() | |
91 | - | |
92 | -# def to_request(self,method,url,data=None,is_json=False,**kwargs): #最后加入**kwargs使可以传headers | |
93 | -# method = method.upper() | |
94 | -# if isinstance(data,str): | |
95 | -# try: | |
96 | -# data = json.load(data) #'{"mobilephone": "18911114444", "pwd": "123456", "regname": "youxiu"}' | |
97 | -# except Exception as e: | |
98 | -# # print("异常为{}".format(e)) | |
99 | -# Logger.error("异常为{}".format(e)) | |
100 | -# data = eval(data) #'{"mobilephone": '18911114444',1:"4545"}' 非json的字符串 | |
101 | -# if method == 'GET': | |
102 | -# res = self.one_session.request(method,url,params=data,**kwargs) | |
103 | -# elif method == 'POST': | |
104 | -# if is_json: | |
105 | -# res = self.one_session.request(method, url, json=data,**kwargs) | |
106 | -# else: | |
107 | -# res = self.one_session.request(method, url, data=data,**kwargs) | |
108 | -# else: | |
109 | -# res = None | |
110 | -# # print("405 METHOD NOT ALLOWED") | |
111 | -# Logger.error("METHOD NOT ALLOWED".format(method)) | |
112 | -# return res | |
113 | -# | |
114 | -# test=myrequest() | |
115 | -# # 获取session | |
116 | -# re=test.getSession(True) | |
117 | -# print(re.headers) | |
118 | -# # 请求 | |
119 | -# # re2=test.post(com.get_api_config('upStream', 'upStream01', 'url'), | |
120 | -# # json=json.loads(d), | |
121 | -# # headers=json.loads(com.get_api_config('upStream', 'upStream01', 'header'))) | |
122 | -# # print(re2.json()) | |
123 | -# | |
124 | -# d=com.get_api_config('upStream', 'upStream01', 'body') | |
125 | -# print(type(json.loads(d))) | |
126 | -# print(d) | |
127 | -# print(d.encode().decode('unicode-escape')) | |
128 | -# | |
129 | -# re3=test.post2("test_01_upStream",body="json") | |
130 | -# print(re3.json()) | |
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,url, data=None, json=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,proxies=self.proxies,**kwargs) | |
33 | + log.info('响应body为{};'.format(res.json())) | |
34 | + return res | |
35 | + | |
36 | + def post2(self,api,**kwargs): | |
37 | + self.api=api.split("_")[2] | |
38 | + 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') | |
42 | + self.data=None if self.body_format=="JSON" else com.get_api_config(self.api,self.api_num,'body') | |
43 | + 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 | + log.info('{0:=^80}'.format('请求接口为{}'.format(api))) | |
46 | + log.info('请求地址为{}; 请求方式为{}; 请求body格式为{};\n 请求body为{}{};'.format( | |
47 | + self.url, | |
48 | + self.method, | |
49 | + self.body_format, | |
50 | + self.data, | |
51 | + self.json)) | |
52 | + | |
53 | + 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) | |
55 | + log.info('响应body为{};'.format(res.json())) | |
56 | + return res | |
57 | + elif self.method.upper()=="GET": | |
58 | + res = self.se.GET(self.url,proxies=self.proxies,**kwargs) | |
59 | + log.info('响应body为{};'.format(res.json())) | |
60 | + return res | |
61 | + elif self.method.upper()=="PUT": | |
62 | + res = self.se.put(self.self.url, data=self.data, json=self.json,proxies=self.proxies,**kwargs) | |
63 | + log.info('响应body为{};'.format(res.json())) | |
64 | + return res | |
65 | + elif self.method.upper()=="DELETE": | |
66 | + res = self.se.delete(self.self.url,proxies=self.proxies,**kwargs) | |
67 | + log.info('响应body为{};'.format(res.json())) | |
68 | + return res | |
69 | + elif self.method.upper()=="HEAD": | |
70 | + res = self.se.head(self.url,proxies=self.proxies,**kwargs) | |
71 | + log.info('响应body为{};'.format(res.json())) | |
72 | + return res | |
73 | + else : | |
74 | + raise Exception("Request method error") | |
75 | + | |
76 | + def close_session(self): | |
77 | + self.se.close() | |
78 | + | |
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 | +# | |
101 | +# test=myrequest() | |
102 | +# # 获取session | |
103 | +# re=test.getSession(True) | |
104 | +# print(re.headers) | |
105 | +# # 请求 | |
106 | +# # re2=test.post(com.get_api_config('upStream', 'upStream01', 'url'), | |
107 | +# # json=json.loads(d), | |
108 | +# # headers=json.loads(com.get_api_config('upStream', 'upStream01', 'header'))) | |
109 | +# # print(re2.json()) | |
110 | +# | |
111 | +# d=com.get_api_config('upStream', 'upStream01', 'body') | |
112 | +# print(type(json.loads(d))) | |
113 | +# print(d) | |
114 | +# print(d.encode().decode('unicode-escape')) | |
115 | +# | |
116 | +# re3=test.post2("test_01_upStream",body="json") | |
117 | +# print(re3.json()) | ... | ... |
src/commons/MyRequest2.py
0 → 100644
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) | |
0 | 66 | \ 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
0 → 100644
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
0 → 100644
No preview for this file type
src/commons/api/__pycache__/upStream.cpython-36.pyc
0 → 100644
No preview for this file type
src/commons/api/login.py
0 → 100644
1 | +#!/usr/bin/python | |
2 | +# -*- coding: UTF-8 -*- | |
3 | +import requests | |
4 | +import json | |
5 | +import urllib3 | |
6 | +from commons import ConfigDB as db | |
7 | +from commons import common as com | |
8 | +urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning) | |
9 | +from commons.MyRequest2 import myrequest | |
10 | + | |
11 | +#列表查询 | |
12 | +class login(): | |
13 | + url="http://test.uap.diligrp.com/login/login.action" | |
14 | + header={ | |
15 | + "Host": "test.uap.diligrp.com", | |
16 | + "Connection": "keep-alive", | |
17 | + "Content-Length": "33", | |
18 | + "Cache-Control": "max-age=0", | |
19 | + "Upgrade-Insecure-Requests": "1", | |
20 | + "Origin": "http://test.uap.diligrp.com", | |
21 | + "Content-Type": "application/x-www-form-urlencoded", | |
22 | + "User-Agent": "Mozilla/5.0(WindowsNT10.0;Win64;x64)AppleWebKit/537.36(KHTML,likeGecko)Chrome/90.0.4430.212Safari/537.36", | |
23 | + "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9", | |
24 | + "Referer": "http://test.uap.diligrp.com/login/index.html", | |
25 | + "Accept-Encoding": "gzip,deflate", | |
26 | + "Accept-Language": "zh-CN,zh-TW;q=0.9,zh;q=0.8,en;q=0.7", | |
27 | + "Cookie": "UAP_accessToken=;UAP_refreshToken=;UAP_loginPath="} | |
28 | + body="userName=sg_wenze&password=111111" | |
29 | + | |
30 | + def __init__(self): | |
31 | + self.login_url="test2" | |
32 | + self.url=login.url | |
33 | + self.header=login.header | |
34 | + self.body=login.body | |
35 | + | |
36 | + def get_session(self,name,password,**kwargs): | |
37 | + self.body=login.body.replace("sg_wenze", name) | |
38 | + self.body=login.body.replace("111111", password) | |
39 | + self.se=requests.session() | |
40 | +# self.se.post(url=self.url, headers=self.header,data=self.body,**kwargs) | |
41 | + self.se.post(url=login.url, headers=login.header,data=login.body,**kwargs) | |
42 | + return self.se | |
43 | + | |
44 | + 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")) | |
47 | + 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) | |
50 | + return self.se | |
51 | + | |
52 | + | |
53 | + | |
54 | + def close_session(self): | |
55 | + print("close session") | |
56 | + self.se.close() | |
57 | + | |
58 | + def post(self,name,password,firmid,**kwargs): | |
59 | + self.body=self.body.replace("sg_wenze", name) | |
60 | + 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 | + re=requests.post(url=self.url, headers=self.header,data=self.body,**kwargs) | |
63 | + | |
64 | + print(re.headers) | |
65 | + return re | |
66 | + | |
67 | + | |
68 | + | |
69 | +# t=login() | |
70 | +# | |
71 | +# t.post("sg_wenze", "111111",proxies={'http': 'http://localhost:8888', 'https': 'http://localhost:8888'}) | |
72 | +# def tt(**kwargs): | |
73 | +# print(kwargs) | |
74 | + | |
75 | +# t.get_session(http="http://localhost:8888", https="http://localhost:8888") | |
76 | +# t.post("sg_wenze", "1111111",proxies={'http': 'http://localhost:8888', 'https': 'http://localhost:8888'}) | |
77 | + | |
78 | + | ... | ... |
src/commons/api/test_upStream.py deleted
100644 → 0
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.MyRequest import myrequest | |
9 | -urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning) | |
10 | -my=myrequest() | |
11 | - | |
12 | -#列表查询 | |
13 | -class test_upStream(unittest.TestCase): | |
14 | - | |
15 | - @classmethod | |
16 | - def setUpClass(cls): | |
17 | - #新增登记单 | |
18 | - cls.se=my.getSession(True) | |
19 | - #由于可能有多种情况所以使用传统的setup | |
20 | - def setUp(self): | |
21 | -# #新增登记单 | |
22 | -# my.registerBill_insert(True) | |
23 | - pass | |
24 | - @unittest.case_config(com.mark()) | |
25 | - def test_01_upStream(self): | |
26 | - #查询上下游企业 | |
27 | - re=my.post2("test_01_upStream") | |
28 | - print(re.json()) | |
29 | - | |
30 | - def test_02_upStream(self): | |
31 | - #新增理货区进场登记单,获取新增前最新的登记单id | |
32 | -# code=db.mysql_selectOne('SELECT code FROM `register_bill` WHERE id="{}";'.format(my.temp[0]))[0] | |
33 | -# #获取接口参数 | |
34 | -# url=com.get_module_config('registerBill', 'listPage', 'listPage01', 'url') | |
35 | -# header=json.loads(com.get_module_config('registerBill', 'listPage', 'listPage01', 'header')) | |
36 | -# body=com.get_module_config('registerBill', 'listPage', 'listPage01', 'body') | |
37 | -# body=body.replace("d2020082700076",code) | |
38 | -# expect_response=json.loads(com.get_module_config('registerBill', 'listPage', 'listPage01', 'expect_response')) | |
39 | -# #进行接口请求,两种方式之一data | |
40 | -# r=my.post(url,data=(body.encode().decode('unicode-escape')),headers=header) | |
41 | -# print(r.json()) | |
42 | -# #进行接口断言 | |
43 | -# self.assertEqual(r.json()["rows"][0]["code"], code," request failed") | |
44 | -# self.assertEqual(com.compare_json(r.json(),expect_response),None,"json compare failed") | |
45 | - pass | |
46 | - | |
47 | - def tearDown(self): | |
48 | - | |
49 | - print("tearDown") | |
50 | - | |
51 | - @classmethod | |
52 | - def tearDownClass(cls): | |
53 | - cls.se.close() | |
54 | - | |
55 | -if __name__ == "__main__": | |
56 | -#unittest.main()方法会搜索该模块文件下所有以test开头的测试用例方法,并自动执行它们。 | |
57 | -#如果不加下面这个语句,那么在通过unittest的方法添加测试用例时,这个文件里面的用例不会被搜索到。 | |
58 | - | |
59 | - unittest.main(verbosity=2) | |
60 | - | |
61 | -# # 以下代码可以调试单个测试用例,用例中打印的语句不会展示到控制台,使用前需要注释上面的代码unittest.main(),如果不使用下面代码, | |
62 | -# # 在有unittest.main()的情况下点击ctrl+f11,会直接运行当前页面所有用例,并且把用例用有打印的语句显示到控制台 | |
63 | -# current_suite = unittest.TestSuite() | |
64 | -# current_suite.addTest(submitOrder("test_01")) | |
65 | -# #以列表形式添加多个测试用例 | |
66 | -# # current_suite.addTests([submitOrder_With_Coupon("test_01"),submitOrder_With_Coupon("test_02")]) | |
67 | -# # 执行测试 | |
68 | -# runner = unittest.TextTestRunner() | |
69 | -# #runner.run(可以直接添加测试用例如submitOrder_With_Coupon("test_01")) | |
70 | -# runner.run(current_suite) | |
71 | 0 | \ No newline at end of file |
src/commons/api/upStream.py
0 → 100644
1 | +#!/usr/bin/python | |
2 | +# -*- coding: UTF-8 -*- | |
3 | +import requests | |
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 | +urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning) | |
10 | +ll=login() | |
11 | + | |
12 | +#列表查询 | |
13 | +class upStream(login): | |
14 | + | |
15 | + url="http://test.trace.diligrp.com:8393/upStream/listPage.action" | |
16 | + header={ | |
17 | + "Host": "test.trace.diligrp.com", | |
18 | + "Connection": "keep-alive", | |
19 | + "Content-Length": "325", | |
20 | + "Accept": "application/json,text/javascript,*/*;q=0.01", | |
21 | + "X-Requested-With": "XMLHttpRequest", | |
22 | + "User-Agent": "Mozilla/5.0(WindowsNT10.0;Win64;x64)AppleWebKit/537.36(KHTML,likeGecko)Chrome/90.0.4430.212Safari/537.36", | |
23 | + "Content-Type": "application/json", | |
24 | + "Origin": "http://test.trace.diligrp.com:8393", | |
25 | + "Referer": "http://test.trace.diligrp.com:8393/upStream/index.html", | |
26 | + "Accept-Encoding": "gzip,deflate", | |
27 | + "Accept-Language": "zh-CN,zh-TW;q=0.9,zh;q=0.8,en;q=0.7"} | |
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 | + def __init__(self): | |
32 | + self.url=upStream.url | |
33 | + self.header=upStream.header | |
34 | + self.body=upStream.body | |
35 | + | |
36 | +# def post(self,name, password,**kwargs): | |
37 | +# se=super().get_session(name, password) | |
38 | +# #用了super后,下面的变量直接变成父类的变量了,跳过子类了,因此导致post请求的时候用实例变量会错误 | |
39 | +# # print(self.header) | |
40 | +# # print(self.body) | |
41 | +# se.post(url=upStream.url, headers=upStream.header,json=upStream.body,**kwargs) | |
42 | +# super().close_session() | |
43 | + | |
44 | + def post(self,name, password,**kwargs): | |
45 | + se=ll.get_session(name, password) | |
46 | + #用了super后,下面的变量直接变成父类的变量了,跳过子类了 | |
47 | +# re=se.post(url=self.url, headers=self.header,json=self.body,**kwargs) | |
48 | + re=se.post(**kwargs) | |
49 | + ll.close_session() | |
50 | + return re | |
51 | + | |
52 | + | |
53 | + def post2(self,session,name, password,**kwargs): | |
54 | + #直接传session,可以适配不用接口使用不同session的场景 | |
55 | + se=ll.get_session(name, password) | |
56 | + print("post2",session) | |
57 | + #用了super后,下面的变量直接变成父类的变量了,跳过子类了 | |
58 | +# re=se.post(url=self.url, headers=self.header,json=self.body,**kwargs) | |
59 | + re=session.post(**kwargs) | |
60 | + ll.close_session() | |
61 | + return re | |
62 | + | |
63 | + | |
64 | +tt=upStream() | |
65 | +# print(id(tt.body)) | |
66 | +# print(id(upStream.body)) | |
67 | +# tt.body["order"]=111 | |
68 | +# print(tt.body) | |
69 | +# print(upStream.body) | |
70 | +# print(id(tt.body)) | |
71 | +# print(id(upStream.body)) | |
72 | +# #深拷贝 | |
73 | +# t1=tt.body.copy() | |
74 | +# print(id(t1)) | |
75 | +# print(id(tt.body)) | |
76 | +# t1["rows"]="666" | |
77 | +# print(id(t1)) | |
78 | +# print(id(tt.body)) | |
79 | +# print(t1) | |
80 | +# print(tt.body) | |
81 | + | |
82 | +# tt.post("sg_wenze", "111111",url=tt.url,headers=tt.header,json=tt.body,proxies={'http': 'http://localhost:8888'}) | |
83 | + | |
84 | +# # print(tt.class_var) | |
85 | +# # print(tt.login_url) | |
86 | +# tt.demo("sg_wenze", "111111",proxies={'http': 'http://localhost:8888'}) | ... | ... |
src/config/account.conf
0 → 100644
1 | +[account] | |
2 | +sg_01=sg_wenze&111111 | |
3 | +sg_02=sg_wenze&111111 | |
4 | +sy_01=666 | |
5 | +sy_01=111 | |
6 | +hs_01=666 | |
7 | +hs_01=111 | |
8 | + | |
9 | +[sy] | |
10 | +username01=666 | |
11 | +password01=111 | |
12 | +username02=666 | |
13 | +password02=111 | |
14 | + | |
15 | +[hs] | |
16 | +username01=666 | |
17 | +password01=111 | |
18 | +username02=666 | |
19 | +password02=111 | |
20 | + | |
21 | + | |
22 | +[firmid] | |
23 | + | |
24 | +[evnironment] | |
25 | + | |
26 | + | ... | ... |
src/report/test.log
1 | -[2021-05-28 18:09:36] [INFO] : =============================请求接口为test_01_upStream============================== | |
2 | -[2021-05-28 18:09:36] [INFO] : 请求地址为http://test.trace.diligrp.com:8393/upStream/listPage.action; 请求方式为post; 请求body格式为JSON; | |
3 | - 请求body为None{'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"}'}}; | |
4 | -[2021-05-28 18:09:42] [INFO] : 响应body为{'rows': [{'upORdown': '上游', '$_upORdown': 10, 'created': '2021-05-26 15:04:27', 'businessLicenseUrl': '3b4af72d6872418a8898b1788bf3477f', '$_upstreamType': 20, 'marketId': 8, 'license': '666666', 'legalPerson': '法人代表', 'telphone': '13111111111', 'name': '一号测试上游企业', 'modified': 1622012667000, 'userNames': '测试一号', 'id': 340, 'sourceUserId': 516, 'upstreamType': '企业'}, {'upORdown': '上游', '$_upORdown': 10, 'created': '2021-05-24 17:35:48', 'idCard': '513001199105081258', '$_upstreamType': 10, 'marketId': 8, 'cardNoBackUrl': '', 'telphone': '18380475463', 'cardNoFrontUrl': '', 'name': '杨我', 'modified': 1621848948000, 'userNames': '地利人和', 'id': 339, 'sourceUserId': 131138, 'upstreamType': '个人'}, {'upORdown': '上游', '$_upORdown': 10, 'created': '2021-05-20 14:19:19', 'idCard': '513001199802081012', '$_upstreamType': 10, 'marketId': 8, 'cardNoBackUrl': '', 'telphone': '18380475463', 'cardNoFrontUrl': '', 'name': '爱情保卫战', 'modified': 1621491559000, 'userNames': '成都广场', 'id': 338, 'sourceUserId': 131155, 'upstreamType': '个人'}, {'upORdown': '上游', '$_upORdown': 10, 'created': '2021-05-18 10:39:22', 'idCard': '513001199802081258', '$_upstreamType': 10, 'marketId': 8, 'cardNoBackUrl': '', 'telphone': '18680475463', 'cardNoFrontUrl': '', 'name': '刘策', 'modified': 1621305562000, 'userNames': '啊撒米', 'id': 337, 'sourceUserId': 131135, 'upstreamType': '个人'}, {'upORdown': '上游', '$_upORdown': 10, 'created': '2021-05-10 09:42:51', 'idCard': '', '$_upstreamType': 10, 'marketId': 8, 'cardNoBackUrl': '', 'telphone': '13540782311', 'cardNoFrontUrl': '', 'name': '111', 'modified': 1620610971000, 'userNames': '雪额外大', 'id': 333, 'sourceUserId': 616, 'upstreamType': '个人'}, {'upORdown': '下游', '$_upORdown': 20, 'created': '2021-04-29 11:07:19', 'businessLicenseUrl': '', '$_upstreamType': 20, 'marketId': 8, 'operationLicenseUrl': '', 'license': '', 'legalPerson': '', 'telphone': '', 'name': '投入', 'modified': 1619665639000, 'userNames': '杨旭旭旭', 'id': 326, 'sourceUserId': 130500, 'manufacturingLicenseUrl': '', 'upstreamType': '企业'}, {'upORdown': '下游', '$_upORdown': 20, 'created': '2021-04-29 11:05:04', 'idCard': '513001199802081011', '$_upstreamType': 10, 'marketId': 8, 'cardNoBackUrl': '', 'telphone': '18380475463', 'cardNoFrontUrl': '', 'name': '12', 'modified': 1619665504000, 'userNames': '杰伦的', 'id': 325, 'sourceUserId': 515, 'upstreamType': '个人'}, {'upORdown': '上游', '$_upORdown': 10, 'created': '2021-04-29 10:38:20', 'businessLicenseUrl': '570da30d70f847edbceec3170c5bd065', '$_upstreamType': 20, 'marketId': 8, 'license': '111111', 'legalPerson': '法人', 'telphone': '13111111111', 'name': '企业名称', 'modified': 1619663900000, 'userNames': '多少啊', 'id': 324, 'sourceUserId': 606, 'upstreamType': '企业'}, {'upORdown': '上游', '$_upORdown': 10, 'created': '2021-04-26 15:12:36', 'idCard': '513001199608081580', '$_upstreamType': 10, 'marketId': 8, 'cardNoBackUrl': '', 'telphone': '18580454632', 'cardNoFrontUrl': '', 'name': '15', 'modified': 1619421156000, 'userNames': '杨旭旭旭', 'id': 320, 'sourceUserId': 130500, 'upstreamType': '个人'}, {'upORdown': '上游', '$_upORdown': 10, 'created': '2021-04-26 15:12:16', 'idCard': '513001199608081580', '$_upstreamType': 10, 'marketId': 8, 'cardNoBackUrl': '', 'telphone': '18380475460', 'cardNoFrontUrl': '', 'name': '两休息', 'modified': 1619421136000, 'userNames': '杨旭旭旭', 'id': 319, 'sourceUserId': 130500, 'upstreamType': '个人'}], 'total': 203}; |
src/testcase/test_tms_myrequest/test_upStream.py
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.MyRequest import myrequest | |
9 | -urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning) | |
10 | -my=myrequest() | |
11 | - | |
12 | -#列表查询 | |
13 | -class test_upStream(unittest.TestCase): | |
14 | - | |
15 | - @classmethod | |
16 | - def setUpClass(cls): | |
17 | - #新增登记单 | |
18 | - cls.se=my.getSession(True) | |
19 | - #由于可能有多种情况所以使用传统的setup | |
20 | - def setUp(self): | |
21 | -# #新增登记单 | |
22 | -# my.registerBill_insert(True) | |
23 | - pass | |
24 | - @unittest.case_config(com.mark()) | |
25 | - def test_01_upStream(self): | |
26 | - #查询上下游企业 | |
27 | - re=my.post2("test_01_upStream") | |
28 | - print(re.json()) | |
29 | - | |
30 | - def test_02_upStream(self): | |
31 | - #新增理货区进场登记单,获取新增前最新的登记单id | |
32 | -# code=db.mysql_selectOne('SELECT code FROM `register_bill` WHERE id="{}";'.format(my.temp[0]))[0] | |
33 | -# #获取接口参数 | |
34 | -# url=com.get_module_config('registerBill', 'listPage', 'listPage01', 'url') | |
35 | -# header=json.loads(com.get_module_config('registerBill', 'listPage', 'listPage01', 'header')) | |
36 | -# body=com.get_module_config('registerBill', 'listPage', 'listPage01', 'body') | |
37 | -# body=body.replace("d2020082700076",code) | |
38 | -# expect_response=json.loads(com.get_module_config('registerBill', 'listPage', 'listPage01', 'expect_response')) | |
39 | -# #进行接口请求,两种方式之一data | |
40 | -# r=my.post(url,data=(body.encode().decode('unicode-escape')),headers=header) | |
41 | -# print(r.json()) | |
42 | -# #进行接口断言 | |
43 | -# self.assertEqual(r.json()["rows"][0]["code"], code," request failed") | |
44 | -# self.assertEqual(com.compare_json(r.json(),expect_response),None,"json compare failed") | |
45 | - pass | |
46 | - | |
47 | - def tearDown(self): | |
48 | - | |
49 | - print("tearDown") | |
50 | - | |
51 | - @classmethod | |
52 | - def tearDownClass(cls): | |
53 | - cls.se.close() | |
54 | - | |
55 | -if __name__ == "__main__": | |
56 | -#unittest.main()方法会搜索该模块文件下所有以test开头的测试用例方法,并自动执行它们。 | |
57 | -#如果不加下面这个语句,那么在通过unittest的方法添加测试用例时,这个文件里面的用例不会被搜索到。 | |
58 | - | |
59 | - unittest.main(verbosity=2) | |
60 | - | |
61 | -# # 以下代码可以调试单个测试用例,用例中打印的语句不会展示到控制台,使用前需要注释上面的代码unittest.main(),如果不使用下面代码, | |
62 | -# # 在有unittest.main()的情况下点击ctrl+f11,会直接运行当前页面所有用例,并且把用例用有打印的语句显示到控制台 | |
63 | -# current_suite = unittest.TestSuite() | |
64 | -# current_suite.addTest(submitOrder("test_01")) | |
65 | -# #以列表形式添加多个测试用例 | |
66 | -# # current_suite.addTests([submitOrder_With_Coupon("test_01"),submitOrder_With_Coupon("test_02")]) | |
67 | -# # 执行测试 | |
68 | -# runner = unittest.TextTestRunner() | |
69 | -# #runner.run(可以直接添加测试用例如submitOrder_With_Coupon("test_01")) | |
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 | +urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning) | |
11 | +ll=login() | |
12 | +uu=upStream() | |
13 | + | |
14 | +#列表查询 | |
15 | +class test_upStream(unittest.TestCase): | |
16 | + | |
17 | + @classmethod | |
18 | + def setUpClass(cls): | |
19 | + #新增登记单 | |
20 | + cls.se=ll.get_session("sg_wenze", "111111") | |
21 | + print(cls.se) | |
22 | + #由于可能有多种情况所以使用传统的setup | |
23 | + def setUp(self): | |
24 | +# #新增登记单 | |
25 | + pass | |
26 | + | |
27 | + def test_01_upStream(self): | |
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 | + | |
36 | + def test_02_upStream(self): | |
37 | + #成功查询上下游企业,加入企业/个人名称过滤条件----直接调用自己类的方法,session和其他用了可能不一致 | |
38 | + url=uu.url | |
39 | + header=uu.header | |
40 | + body=uu.body.copy() | |
41 | + body["likeName"]="111" | |
42 | + print("test_02_upStream",body) | |
43 | + re=uu.post("sg_wenze", "111111",url=url,headers=header,json=body) | |
44 | + print(re.json()) | |
45 | + | |
46 | + 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) | |
54 | + print(re.json()) | |
55 | + | |
56 | + 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) | |
63 | + print("test_04_upStream",re.json()) | |
64 | + | |
65 | + | |
66 | + def tearDown(self): | |
67 | + | |
68 | + print("tearDown") | |
69 | + | |
70 | + @classmethod | |
71 | + def tearDownClass(cls): | |
72 | + pass | |
73 | + | |
74 | +if __name__ == "__main__": | |
75 | +#unittest.main()方法会搜索该模块文件下所有以test开头的测试用例方法,并自动执行它们。 | |
76 | +#如果不加下面这个语句,那么在通过unittest的方法添加测试用例时,这个文件里面的用例不会被搜索到。 | |
77 | + | |
78 | + unittest.main(verbosity=2) | |
79 | + | |
80 | +# # 以下代码可以调试单个测试用例,用例中打印的语句不会展示到控制台,使用前需要注释上面的代码unittest.main(),如果不使用下面代码, | |
81 | +# # 在有unittest.main()的情况下点击ctrl+f11,会直接运行当前页面所有用例,并且把用例用有打印的语句显示到控制台 | |
82 | +# current_suite = unittest.TestSuite() | |
83 | +# current_suite.addTest(submitOrder("test_01")) | |
84 | +# #以列表形式添加多个测试用例 | |
85 | +# # current_suite.addTests([submitOrder_With_Coupon("test_01"),submitOrder_With_Coupon("test_02")]) | |
86 | +# # 执行测试 | |
87 | +# runner = unittest.TextTestRunner() | |
88 | +# #runner.run(可以直接添加测试用例如submitOrder_With_Coupon("test_01")) | |
70 | 89 | # runner.run(current_suite) |
71 | 90 | \ No newline at end of file | ... | ... |