Commit e3f10192f0322ffe134f1da465f5bd4992f4ab10

Authored by lixi
1 parent bb70b111

MySession.py新增客户端登录方法get_session_client

commons/MySession.py
@@ -5,12 +5,15 @@ import json @@ -5,12 +5,15 @@ import json
5 from commons import common as com 5 from commons import common as com
6 from commons.Logging import Logger 6 from commons.Logging import Logger
7 from commons.clientSession import cliSession 7 from commons.clientSession import cliSession
  8 +from commons.scripts.pwdCry import pwdCry
8 log=Logger() 9 log=Logger()
9 10
10 class mysession(): 11 class mysession():
11 "封装了requests的基类,以供后期统一使用" 12 "封装了requests的基类,以供后期统一使用"
12 13
13 url = "http://test.uap.diligrp.com/login/login.action" 14 url = "http://test.uap.diligrp.com/login/login.action"
  15 + url_client = "http://test.uap.diligrp.com/api/authenticationApi/loginWeb"
  16 +
14 header = { 17 header = {
15 "Host": "test.uap.diligrp.com", 18 "Host": "test.uap.diligrp.com",
16 "Connection": "keep-alive", 19 "Connection": "keep-alive",
@@ -25,19 +28,29 @@ class mysession(): @@ -25,19 +28,29 @@ class mysession():
25 "Accept-Encoding": "gzip,deflate", 28 "Accept-Encoding": "gzip,deflate",
26 "Accept-Language": "zh-CN,zh-TW;q=0.9,zh;q=0.8,en;q=0.7", 29 "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="} 30 "Cookie": "UAP_accessToken=;UAP_refreshToken=;UAP_loginPath="}
  31 + header_client = {
  32 + "Content-Type": "text/plain;charset\u003dutf-8",
  33 + "Host": "test.uap.diligrp.com",
  34 + "Content-Length": "209",
  35 + "Expect": "100-continue"}
  36 +
28 body = "userName=sg_wenze&password=111111" 37 body = "userName=sg_wenze&password=111111"
  38 + body_client= {"userName":"sg_wenze","password":"key"}
29 39
30 def __init__(self): 40 def __init__(self):
31 "如下代码,可以通过配置文件来控制测试环境和灰度环境,http和https" 41 "如下代码,可以通过配置文件来控制测试环境和灰度环境,http和https"
32 self.url = mysession.url.replace("http://test.", com.get_global_config("global_data", "environment", "en")) 42 self.url = mysession.url.replace("http://test.", com.get_global_config("global_data", "environment", "en"))
33 self.header = mysession.header 43 self.header = mysession.header
34 self.body = mysession.body 44 self.body = mysession.body
  45 + self.url_client = mysession.url_client.replace("http://test.", com.get_global_config("global_data", "environment", "en"))
  46 + self.header_client = mysession.header_client
  47 + self.body_client = mysession.body_client
35 self.timeout = (5, 5) 48 self.timeout = (5, 5)
36 self.max_retries = 3 49 self.max_retries = 3
37 self.keep_alive = False 50 self.keep_alive = False
38 self.ssl_verify = False 51 self.ssl_verify = False
39 - self.proxies = None  
40 -# self.proxies={'http': 'http://localhost:8888', 'https': 'http://localhost:8888'} 52 + # self.proxies = None
  53 + self.proxies={'http': 'http://localhost:8888', 'https': 'http://localhost:8888'}
41 self.allow_redirects = False 54 self.allow_redirects = False
42 self.firmid={"group":"1","hd":"2","cd":"3","qqhe":"4","mdj":"5","gy":"6","cc":"7","sg":"8","sy":"9"} 55 self.firmid={"group":"1","hd":"2","cd":"3","qqhe":"4","mdj":"5","gy":"6","cc":"7","sg":"8","sy":"9"}
43 56
@@ -46,11 +59,11 @@ class mysession(): @@ -46,11 +59,11 @@ class mysession():
46 self.webHeaders, self.clientHeaders, self.userInfo = cliSession().loginUser() 59 self.webHeaders, self.clientHeaders, self.userInfo = cliSession().loginUser()
47 60
48 def get_session(self, account, **kwargs): 61 def get_session(self, account, **kwargs):
49 - # print("get_session")  
50 "如下代码,可以通过配置文件来控制登录的账户session" 62 "如下代码,可以通过配置文件来控制登录的账户session"
51 self.body = self.body.replace("sg_wenze", 63 self.body = self.body.replace("sg_wenze",
52 com.get_global_config("global_data", "account", account).split("&")[0]) 64 com.get_global_config("global_data", "account", account).split("&")[0])
53 - self.body = self.body.replace("111111", com.get_global_config("global_data", "account", account).split("&")[1]) 65 + self.body = self.body.replace("111111",
  66 + com.get_global_config("global_data", "account", account).split("&")[1])
54 # requests.session()会话保持,比如使用session成功的登录了某个网站, 67 # requests.session()会话保持,比如使用session成功的登录了某个网站,
55 # 则在再次使用该session对象求求该网站的其他网页都会默认使用该session之前使用的cookie等参数 68 # 则在再次使用该session对象求求该网站的其他网页都会默认使用该session之前使用的cookie等参数
56 self.se = requests.session() 69 self.se = requests.session()
@@ -64,9 +77,30 @@ class mysession(): @@ -64,9 +77,30 @@ class mysession():
64 #获取关键信息供其他接口header使用 77 #获取关键信息供其他接口header使用
65 self.UAP_accessToken=self.se.cookies["UAP_accessToken"] 78 self.UAP_accessToken=self.se.cookies["UAP_accessToken"]
66 self.UAP_refreshToken=self.se.cookies["UAP_refreshToken"] 79 self.UAP_refreshToken=self.se.cookies["UAP_refreshToken"]
  80 + print(self.UAP_accessToken)
  81 + print(self.UAP_refreshToken)
67 # 返回session对象,供其他接口使用 82 # 返回session对象,供其他接口使用
68 return self.se 83 return self.se
69 84
  85 + def get_session_client(self, account, **kwargs):
  86 + "get_session和get_session_client的方法只能用一个"
  87 + "如下代码,可以通过配置文件来控制登录的账户session"
  88 + self.body_client.update({"userName":com.get_global_config("global_data", "account", account).split("&")[0]})
  89 + self.body_client.update({"password":pwdCry(com.get_global_config("global_data", "account", account).split("&")[1])})
  90 + # requests.session()会话保持,比如使用session成功的登录了某个网站,
  91 + # 则在再次使用该session对象求求该网站的其他网页都会默认使用该session之前使用的cookie等参数
  92 + self.se = requests.session()
  93 + # 使用session对象的方法POST/GET等
  94 + re = self.se.post(url=self.url_client, headers=self.header_client, json=self.body_client, proxies=self.proxies, **kwargs)
  95 + #获取关键信息供其他接口header使用
  96 + self.UAP_accessToken=re.json()["data"]["accessToken"]
  97 + self.UAP_refreshToken=re.json()["data"]["refreshToken"]
  98 + print(self.UAP_accessToken)
  99 + print(self.UAP_refreshToken)
  100 + # 返回session对象,供其他接口使用
  101 + return self.se
  102 +
  103 +
70 def close_session(self): 104 def close_session(self):
71 "关闭session" 105 "关闭session"
72 self.se.close() 106 self.se.close()
@@ -222,5 +256,7 @@ my.set_mark() @@ -222,5 +256,7 @@ my.set_mark()
222 my.cliLogin() 256 my.cliLogin()
223 s1 = my.get_session("sg_user01") 257 s1 = my.get_session("sg_user01")
224 s2 = my.get_session("sg_user02") 258 s2 = my.get_session("sg_user02")
  259 +s3 = my.get_session_client("sg_user01")
225 # sg1=my.get_session("sg_user01") 260 # sg1=my.get_session("sg_user01")
226 # sy1=my.get_session("sy_user01") 261 # sy1=my.get_session("sy_user01")
  262 +
report/test.log
1 -[2021-07-21 10:40:56] [INFO] : ======================================================================================  
2 -[2021-07-21 10:40:56] [INFO] : http://test.trace.diligrp.com:8393/fieldConfig/doUpdate.action  
3 -None  
4 -{'moduleType': '1', 'marketId': '8', 'fieldConfigDetailList': [{'fieldName': 'unitPrice', 'jsonPath': '$.unitPrice', 'defaultId': '3', 'displayed': '1', 'required': '0'}, {'fieldName': 'arrivalTallynos', 'jsonPath': '$.arrivalTallynos', 'defaultId': '10', 'displayed': '1', 'required': '0'}, {'fieldName': 'brandName', 'jsonPath': '$.brandName', 'defaultId': '5', 'displayed': '1', 'required': '0'}, {'fieldName': 'truckTareWeight', 'jsonPath': '$.truckTareWeight', 'defaultId': '1', 'displayed': '1', 'required': '0'}, {'fieldName': 'originId', 'jsonPath': '$.originId', 'defaultId': '7', 'displayed': '1', 'required': '0'}, {'fieldName': 'specName', 'jsonPath': '$.specName', 'defaultId': '4', 'displayed': '1', 'required': '0'}, {'fieldName': 'truckType', 'jsonPath': '$.truckType', 'defaultId': '2', 'displayed': '1', 'required': '1', 'availableValueList': ['10', '20']}, {'fieldName': 'imageCertList', 'jsonPath': '$.imageCertList[*]certType', 'defaultId': '11', 'displayed': '1', 'required': '0', 'availableValueList': ['2', '3']}, {'fieldName': 'arrivalDatetime', 'jsonPath': '$.arrivalDatetime', 'defaultId': '9', 'displayed': '1', 'required': '0'}, {'fieldName': 'remark', 'jsonPath': '$.remark', 'defaultId': '8', 'displayed': '1', 'required': '0'}, {'fieldName': 'remark', 'jsonPath': '$.remark', 'defaultId': '6', 'displayed': '1', 'required': '0'}, {'fieldName': 'measureType', 'jsonPath': '$.measureType', 'defaultId': '12', 'displayed': '1', 'required': '1', 'availableValueList': ['10', '20']}]}  
5 -{'headers': {'Host': 'test.trace.diligrp.com:8393', 'Connection': 'keep-alive', 'Content-Length': '1378', 'Accept': 'application/json,text/javascript,*/*;q=0.01', 'X-Requested-With': 'XMLHttpRequest', 'User-Agent': 'Mozilla/5.0(WindowsNT10.0;Win64;x64)AppleWebKit/537.36(KHTML,likeGecko)Chrome/91.0.4472.77Safari/537.36', 'Content-Type': 'application/json', 'Origin': 'http://test.trace.diligrp.com:8393', 'Referer': 'http://test.trace.diligrp.com:8393/fieldConfig/bill.html', 'Accept-Encoding': 'gzip,deflate', 'Accept-Language': 'zh-CN,zh-TW;q=0.9,zh;q=0.8,en;q=0.7'}}  
6 -[2021-07-21 10:40:57] [INFO] : ======================================================================================  
7 -[2021-07-21 10:40:57] [INFO] : http://test.trace.diligrp.com:8393/newRegisterBill/doAdd.action  
8 -{"registerHeadWeight": "0", "registerHeadRemainWeight": "0", "imageCertList": [], "measureType": 20, "registType": 10, "userId": 516, "arrivalTallynos": [], "arrivalDatetime": "", "truckType": 10, "weight": "111", "weightUnit": 1, "productName": "\u5927\u767d\u83dc", "productId": 2190, "originName": "", "originId": "", "unitPrice": "", "truckTareWeight": "", "remark": "", "specName": "", "brandName": "", "plate": "\u5dddA123456"}  
9 -{}  
10 -  
11 -[2021-07-21 10:40:59] [INFO] : 发送邮件  
12 -[2021-07-21 10:41:03] [INFO] : 邮件发送完毕