Commit 7b71d8ba7b0a60b59dcb41f1b87d16369eec3e90

Authored by SuperPC
Committed by liujiqiang
1 parent 1059129c

更新关键字代码

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