Commit cc2cca77c61d45f2462ea80c22526c066fa9327d
1 parent
224ffd15
修改mysession客户端操作
Showing
5 changed files
with
98 additions
and
95 deletions
.idea/card-app.iml
@@ -4,6 +4,5 @@ | @@ -4,6 +4,5 @@ | ||
4 | <content url="file://$MODULE_DIR$" /> | 4 | <content url="file://$MODULE_DIR$" /> |
5 | <orderEntry type="inheritedJdk" /> | 5 | <orderEntry type="inheritedJdk" /> |
6 | <orderEntry type="sourceFolder" forTests="false" /> | 6 | <orderEntry type="sourceFolder" forTests="false" /> |
7 | - <orderEntry type="module" module-name="cardApp" /> | ||
8 | </component> | 7 | </component> |
9 | </module> | 8 | </module> |
10 | \ No newline at end of file | 9 | \ No newline at end of file |
.idea/dictionaries/Ljq.xml
0 → 100644
.idea/modules.xml
@@ -3,7 +3,6 @@ | @@ -3,7 +3,6 @@ | ||
3 | <component name="ProjectModuleManager"> | 3 | <component name="ProjectModuleManager"> |
4 | <modules> | 4 | <modules> |
5 | <module fileurl="file://$PROJECT_DIR$/.idea/card-app.iml" filepath="$PROJECT_DIR$/.idea/card-app.iml" /> | 5 | <module fileurl="file://$PROJECT_DIR$/.idea/card-app.iml" filepath="$PROJECT_DIR$/.idea/card-app.iml" /> |
6 | - <module fileurl="file://$PROJECT_DIR$/../../../../08自动化项目/09AutoTest/cardApp/.idea/cardApp.iml" filepath="$PROJECT_DIR$/../../../../08自动化项目/09AutoTest/cardApp/.idea/cardApp.iml" /> | ||
7 | </modules> | 6 | </modules> |
8 | </component> | 7 | </component> |
9 | </project> | 8 | </project> |
10 | \ No newline at end of file | 9 | \ No newline at end of file |
commons/MySession.py
@@ -7,72 +7,78 @@ from commons.Logging import Logger | @@ -7,72 +7,78 @@ from commons.Logging import Logger | ||
7 | from commons.clientSession import cliSession | 7 | from commons.clientSession import cliSession |
8 | log=Logger() | 8 | log=Logger() |
9 | 9 | ||
10 | + | ||
10 | class mysession(): | 11 | class mysession(): |
11 | "封装了requests的基类,以供后期统一使用" | 12 | "封装了requests的基类,以供后期统一使用" |
12 | - | ||
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 | - | 13 | + |
14 | + url = "http://test.uap.diligrp.com/login/login.action" | ||
15 | + header = { | ||
16 | + "Host": "test.uap.diligrp.com", | ||
17 | + "Connection": "keep-alive", | ||
18 | + "Content-Length": "33", | ||
19 | + "Cache-Control": "max-age=0", | ||
20 | + "Upgrade-Insecure-Requests": "1", | ||
21 | + "Origin": "http://test.uap.diligrp.com", | ||
22 | + "Content-Type": "application/x-www-form-urlencoded", | ||
23 | + "User-Agent": "Mozilla/5.0(WindowsNT10.0;Win64;x64)AppleWebKit/537.36(KHTML,likeGecko)Chrome/90.0.4430.212Safari/537.36", | ||
24 | + "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", | ||
25 | + "Referer": "http://test.uap.diligrp.com/login/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 | + "Cookie": "UAP_accessToken=;UAP_refreshToken=;UAP_loginPath="} | ||
29 | + body = "userName=sg_wenze&password=111111" | ||
30 | + | ||
30 | def __init__(self): | 31 | def __init__(self): |
31 | "如下代码,可以通过配置文件来控制测试环境和灰度环境,http和https" | 32 | "如下代码,可以通过配置文件来控制测试环境和灰度环境,http和https" |
32 | - self.url=mysession.url.replace("http://test.",com.get_global_config("global_data", "environment", "en") ) | ||
33 | - self.header=mysession.header | ||
34 | - self.body=mysession.body | ||
35 | - self.timeout = (5,5) | 33 | + self.url = mysession.url.replace("http://test.", com.get_global_config("global_data", "environment", "en")) |
34 | + self.header = mysession.header | ||
35 | + self.body = mysession.body | ||
36 | + self.timeout = (5, 5) | ||
36 | self.max_retries = 3 | 37 | self.max_retries = 3 |
37 | self.keep_alive = False | 38 | self.keep_alive = False |
38 | - self.ssl_verify=False | ||
39 | - self.proxies=None | ||
40 | - self.allow_redirects=False | ||
41 | - self.webHeaders,self.clientHeaders,self.userInfo = cliSession().loginUser() | 39 | + self.ssl_verify = False |
40 | + self.proxies = None | ||
41 | + self.allow_redirects = False | ||
42 | 42 | ||
43 | -# self.proxies={'http': 'http://localhost:8888', 'https': 'http://localhost:8888'} | 43 | + # self.proxies={'http': 'http://localhost:8888', 'https': 'http://localhost:8888'} |
44 | + def cliLogin(self): | ||
45 | + self.webHeaders, self.clientHeaders, self.userInfo = cliSession().loginUser() | ||
44 | 46 | ||
45 | - def get_session(self,account,**kwargs): | 47 | + def get_session(self, account, **kwargs): |
48 | + print("get_session") | ||
46 | "如下代码,可以通过配置文件来控制登录的账户session" | 49 | "如下代码,可以通过配置文件来控制登录的账户session" |
47 | - self.body=self.body.replace("sg_wenze", com.get_global_config("global_data", "account", account).split("&")[0]) | ||
48 | - self.body=self.body.replace("111111", com.get_global_config("global_data", "account", account).split("&")[1]) | ||
49 | - #requests.session()会话保持,比如使用session成功的登录了某个网站, | ||
50 | - #则在再次使用该session对象求求该网站的其他网页都会默认使用该session之前使用的cookie等参数 | ||
51 | - self.se=requests.session() | ||
52 | - #使用session对象的方法POST/GET等 | ||
53 | - re=self.se.post(url=self.url, headers=self.header,data=self.body,proxies=self.proxies,**kwargs) | ||
54 | - #返回session对象,供其他接口使用 | ||
55 | - return self.se | 50 | + self.body = self.body.replace("sg_wenze", |
51 | + com.get_global_config("global_data", "account", account).split("&")[0]) | ||
52 | + self.body = self.body.replace("111111", com.get_global_config("global_data", "account", account).split("&")[1]) | ||
53 | + # requests.session()会话保持,比如使用session成功的登录了某个网站, | ||
54 | + # 则在再次使用该session对象求求该网站的其他网页都会默认使用该session之前使用的cookie等参数 | ||
55 | + self.se = requests.session() | ||
56 | + # 使用session对象的方法POST/GET等 | ||
57 | + re = self.se.post(url=self.url, headers=self.header, data=self.body, proxies=self.proxies, **kwargs) | ||
58 | + # 返回session对象,供其他接口使用 | ||
59 | + print(self.se.cookies) | ||
60 | + return self.se | ||
56 | 61 | ||
57 | def close_session(self): | 62 | def close_session(self): |
58 | "关闭session" | 63 | "关闭session" |
59 | self.se.close() | 64 | self.se.close() |
60 | 65 | ||
61 | - | ||
62 | - def check_login(self,account,**kwargs): | 66 | + def check_login(self, account, **kwargs): |
63 | "验证登录接口" | 67 | "验证登录接口" |
64 | - self.body=self.body.replace("sg_wenze", com.get_global_config("global_data", "account", account).split("&")[0]) | ||
65 | - self.body=self.body.replace("111111", com.get_global_config("global_data", "account", account).split("&")[1]) | ||
66 | - #POST请求, | ||
67 | - re=self.se.post(url=self.url, headers=self.header,data=self.body,proxies=self.proxies,allow_redirects=False,**kwargs) | ||
68 | - #判断请求 | 68 | + self.body = self.body.replace("sg_wenze", |
69 | + com.get_global_config("global_data", "account", account).split("&")[0]) | ||
70 | + self.body = self.body.replace("111111", com.get_global_config("global_data", "account", account).split("&")[1]) | ||
71 | + # POST请求, | ||
72 | + re = self.se.post(url=self.url, headers=self.header, data=self.body, proxies=self.proxies, | ||
73 | + allow_redirects=False, **kwargs) | ||
74 | + # 判断请求 | ||
69 | assert "UAP_accessToken" in re.headers["Set-Cookie"] | 75 | assert "UAP_accessToken" in re.headers["Set-Cookie"] |
70 | assert "UAP_refreshToken" in re.headers["Set-Cookie"] | 76 | assert "UAP_refreshToken" in re.headers["Set-Cookie"] |
71 | assert "UAP_loginPath" in re.headers["Set-Cookie"] | 77 | assert "UAP_loginPath" in re.headers["Set-Cookie"] |
72 | print("登录接口验证成功") | 78 | print("登录接口验证成功") |
73 | return re | 79 | return re |
74 | 80 | ||
75 | - def useHeadersRequests(self,method=None,url=None,headers=None,data=None,**kwargs): | 81 | + def useHeadersRequests(self, method=None, url=None, headers=None, data=None, **kwargs): |
76 | """ | 82 | """ |
77 | 模拟客户端接口操作,使用headers进行cookies传递,调用requests库进行接口访问 | 83 | 模拟客户端接口操作,使用headers进行cookies传递,调用requests库进行接口访问 |
78 | :param method:接口请求方式,POST,GET等 | 84 | :param method:接口请求方式,POST,GET等 |
@@ -84,18 +90,16 @@ class mysession(): | @@ -84,18 +90,16 @@ class mysession(): | ||
84 | # print(headers) | 90 | # print(headers) |
85 | print(data) | 91 | print(data) |
86 | log.info("{0:=^86}".format('')) | 92 | log.info("{0:=^86}".format('')) |
87 | - log.info("{}\n{}\n{}\n".format(url,data,kwargs)) | 93 | + log.info("{}\n{}\n{}\n".format(url, data, kwargs)) |
88 | if "gateway" in url: | 94 | if "gateway" in url: |
89 | # 判断接口路径,通过接口路径钟是否包含gateway来判定接口是否是由客户端进行访问,来判定headers使用 | 95 | # 判断接口路径,通过接口路径钟是否包含gateway来判定接口是否是由客户端进行访问,来判定headers使用 |
90 | - self.clientHeaders = dict(self.clientHeaders,**headers) | 96 | + self.clientHeaders = dict(self.clientHeaders, **headers) |
91 | res = requests.request(method=method, url=url, data=data, headers=self.clientHeaders, **kwargs) | 97 | res = requests.request(method=method, url=url, data=data, headers=self.clientHeaders, **kwargs) |
92 | else: | 98 | else: |
93 | self.webHeaders = dict(self.webHeaders, **headers) | 99 | self.webHeaders = dict(self.webHeaders, **headers) |
94 | res = requests.request(method=method, url=url, data=data, headers=self.webHeaders, **kwargs) | 100 | res = requests.request(method=method, url=url, data=data, headers=self.webHeaders, **kwargs) |
95 | return res | 101 | return res |
96 | 102 | ||
97 | - | ||
98 | - | ||
99 | def get(self, url, **kwargs): | 103 | def get(self, url, **kwargs): |
100 | """Sends a GET request. Returns :class:`Response` object. | 104 | """Sends a GET request. Returns :class:`Response` object. |
101 | 105 | ||
@@ -103,13 +107,13 @@ class mysession(): | @@ -103,13 +107,13 @@ class mysession(): | ||
103 | :param \*\*kwargs: Optional arguments that ``request`` takes. | 107 | :param \*\*kwargs: Optional arguments that ``request`` takes. |
104 | :rtype: requests.Response | 108 | :rtype: requests.Response |
105 | """ | 109 | """ |
106 | - #记录日志 | 110 | + # 记录日志 |
107 | log.info("{0:=^86}".format('')) | 111 | log.info("{0:=^86}".format('')) |
108 | - log.info("{}\n{}\n".format(url,kwargs)) | ||
109 | - #进行请求 | ||
110 | - re=self.se.get(url,**kwargs,proxies=self.proxies,timeout=self.timeout) | 112 | + log.info("{}\n{}\n".format(url, kwargs)) |
113 | + # 进行请求 | ||
114 | + re = self.se.get(url, **kwargs, proxies=self.proxies, timeout=self.timeout) | ||
111 | return re | 115 | return re |
112 | - | 116 | + |
113 | def post(self, url, data=None, json=None, **kwargs): | 117 | def post(self, url, data=None, json=None, **kwargs): |
114 | """Sends a POST request. Returns :class:`Response` object. | 118 | """Sends a POST request. Returns :class:`Response` object. |
115 | :param url: URL for the new :class:`Request` object. | 119 | :param url: URL for the new :class:`Request` object. |
@@ -119,11 +123,11 @@ class mysession(): | @@ -119,11 +123,11 @@ class mysession(): | ||
119 | :param \*\*kwargs: Optional arguments that ``request`` takes. | 123 | :param \*\*kwargs: Optional arguments that ``request`` takes. |
120 | :rtype: requests.Response | 124 | :rtype: requests.Response |
121 | """ | 125 | """ |
122 | - #记录日志 | 126 | + # 记录日志 |
123 | log.info("{0:=^86}".format('')) | 127 | log.info("{0:=^86}".format('')) |
124 | - log.info("{}\n{}\n{}\n{}".format(url,data,json,kwargs)) | ||
125 | - #进行请求 | ||
126 | - re=self.se.post(url, data=data, json=json,proxies=self.proxies, **kwargs,timeout=self.timeout) | 128 | + log.info("{}\n{}\n{}\n{}".format(url, data, json, kwargs)) |
129 | + # 进行请求 | ||
130 | + re = self.se.post(url, data=data, json=json, proxies=self.proxies, **kwargs, timeout=self.timeout) | ||
127 | return re | 131 | return re |
128 | 132 | ||
129 | def options(self, url, **kwargs): | 133 | def options(self, url, **kwargs): |
@@ -132,10 +136,10 @@ class mysession(): | @@ -132,10 +136,10 @@ class mysession(): | ||
132 | :param \*\*kwargs: Optional arguments that ``request`` takes. | 136 | :param \*\*kwargs: Optional arguments that ``request`` takes. |
133 | :rtype: requests.Response | 137 | :rtype: requests.Response |
134 | """ | 138 | """ |
135 | - #记录日志 | ||
136 | - log.info(url,kwargs) | ||
137 | - #进行请求 | ||
138 | - re=self.se.options(url,**kwargs) | 139 | + # 记录日志 |
140 | + log.info(url, kwargs) | ||
141 | + # 进行请求 | ||
142 | + re = self.se.options(url, **kwargs) | ||
139 | return re | 143 | return re |
140 | 144 | ||
141 | def head(self, url, **kwargs): | 145 | def head(self, url, **kwargs): |
@@ -145,12 +149,12 @@ class mysession(): | @@ -145,12 +149,12 @@ class mysession(): | ||
145 | :param \*\*kwargs: Optional arguments that ``request`` takes. | 149 | :param \*\*kwargs: Optional arguments that ``request`` takes. |
146 | :rtype: requests.Response | 150 | :rtype: requests.Response |
147 | """ | 151 | """ |
148 | - #记录日志 | ||
149 | - log.info(url,kwargs) | ||
150 | - #进行请求 | ||
151 | - re=self.se.head(url,**kwargs) | 152 | + # 记录日志 |
153 | + log.info(url, kwargs) | ||
154 | + # 进行请求 | ||
155 | + re = self.se.head(url, **kwargs) | ||
152 | return re | 156 | return re |
153 | - | 157 | + |
154 | def put(self, url, data=None, **kwargs): | 158 | def put(self, url, data=None, **kwargs): |
155 | """Sends a PUT request. Returns :class:`Response` object. | 159 | """Sends a PUT request. Returns :class:`Response` object. |
156 | :param url: URL for the new :class:`Request` object. | 160 | :param url: URL for the new :class:`Request` object. |
@@ -159,54 +163,54 @@ class mysession(): | @@ -159,54 +163,54 @@ class mysession(): | ||
159 | :param \*\*kwargs: Optional arguments that ``request`` takes. | 163 | :param \*\*kwargs: Optional arguments that ``request`` takes. |
160 | :rtype: requests.Response | 164 | :rtype: requests.Response |
161 | """ | 165 | """ |
162 | - #记录日志 | ||
163 | - log.info(url,data,kwargs) | ||
164 | - #进行请求 | ||
165 | - re=self.se.put(url, data,**kwargs) | 166 | + # 记录日志 |
167 | + log.info(url, data, kwargs) | ||
168 | + # 进行请求 | ||
169 | + re = self.se.put(url, data, **kwargs) | ||
166 | return re | 170 | return re |
167 | - | 171 | + |
168 | def delete(self, url, **kwargs): | 172 | def delete(self, url, **kwargs): |
169 | """Sends a DELETE request. Returns :class:`Response` object. | 173 | """Sends a DELETE request. Returns :class:`Response` object. |
170 | :param url: URL for the new :class:`Request` object. | 174 | :param url: URL for the new :class:`Request` object. |
171 | :param \*\*kwargs: Optional arguments that ``request`` takes. | 175 | :param \*\*kwargs: Optional arguments that ``request`` takes. |
172 | :rtype: requests.Response | 176 | :rtype: requests.Response |
173 | """ | 177 | """ |
174 | - #记录日志 | ||
175 | - log.info(url,kwargs) | ||
176 | - #进行请求 | ||
177 | - re=self.se.delete(url,**kwargs) | 178 | + # 记录日志 |
179 | + log.info(url, kwargs) | ||
180 | + # 进行请求 | ||
181 | + re = self.se.delete(url, **kwargs) | ||
178 | return re | 182 | return re |
179 | - | 183 | + |
180 | def set_mark(self): | 184 | def set_mark(self): |
181 | "用户自定义优先级方法" | 185 | "用户自定义优先级方法" |
182 | - mark_list=eval(com.get_global_config("global_data","mark","list")) | ||
183 | - print("预设运行标记:",mark_list) | 186 | + mark_list = eval(com.get_global_config("global_data", "mark", "list")) |
187 | + print("预设运行标记:", mark_list) | ||
184 | global _global_mark | 188 | global _global_mark |
185 | - if type(mark_list)==type([]) and len(mark_list)!=0 : | ||
186 | - _global_mark=mark_list | 189 | + if type(mark_list) == type([]) and len(mark_list) != 0: |
190 | + _global_mark = mark_list | ||
187 | return _global_mark | 191 | return _global_mark |
188 | - elif type(mark_list)==type([]) and len(mark_list)==0: | ||
189 | - _global_mark=False | 192 | + elif type(mark_list) == type([]) and len(mark_list) == 0: |
193 | + _global_mark = False | ||
190 | return _global_mark | 194 | return _global_mark |
191 | else: | 195 | else: |
192 | raise Exception("error,pls check mark data") | 196 | raise Exception("error,pls check mark data") |
193 | 197 | ||
194 | - def mark(self,m=None): | 198 | + def mark(self, m=None): |
195 | try: | 199 | try: |
196 | - #没有输入任何预设值,默认跑全部 | ||
197 | - if _global_mark == False : | 200 | + # 没有输入任何预设值,默认跑全部 |
201 | + if _global_mark == False: | ||
198 | return True | 202 | return True |
199 | - #输入预设值且未标记用例,默认跑全部 | 203 | + # 输入预设值且未标记用例,默认跑全部 |
200 | elif _global_mark != False and (m in _global_mark): | 204 | elif _global_mark != False and (m in _global_mark): |
201 | - return True | 205 | + return True |
202 | else: | 206 | else: |
203 | return False | 207 | return False |
204 | except Exception as e: | 208 | except Exception as e: |
205 | return False | 209 | return False |
206 | 210 | ||
207 | 211 | ||
208 | - | ||
209 | -my=mysession() | 212 | +my = mysession() |
210 | my.set_mark() | 213 | my.set_mark() |
211 | -s1=my.get_session("user01") | 214 | +s1 = my.get_session("user01") |
212 | # s2=my.get_session("user02") | 215 | # s2=my.get_session("user02") |
216 | +my.cliLogin() |
report/test.log