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 | \ No newline at end of file | 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 | \ No newline at end of file | 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 | # runner.run(current_suite) | 89 | # runner.run(current_suite) |
71 | \ No newline at end of file | 90 | \ No newline at end of file |