def __init__(self): self.sqldata = lhlSql() self.portalsql = portalSql() self.postheader = {} self.postheader['Authorization'] = userLogin.userlogin().accountLogin() self.postheader['Content-Type'] = "application/json" self.url = config.userurl + "/department" pass
def __init__(self): self.sqldata = lhlSql() self.portalsql = portalSql() self.session = userLogin.userlogin() self.postheader = {} self.postheader['Content-Type'] = "application/json" self.postheader['Authorization'] = self.session.accountLogin() self.url = config.contracturl pass
def __init__(self): self.sqldata = lhlSql() self.portalsql = portalSql() self.session = userLogin.userlogin() self.postheader = {} self.getheader = {} self.postheader['Content-Type'] = "application/json" self.getheader['Content-Type'] = "application/x-www-form-urlencoded;charset=UTF-8" self.postheader['Requested-With'] = "XMLHttpRequest" self.postheader['Authorization'] = self.session.accountLogin() self.url = config.orgurl + "/org" pass
#!/usr/bin/env python import userRegist, userLogin, findPasswd #实例化注册模块 a = userRegist.userregist() #合法账号手机号注册 a.phoneregist() #非法账号手机号注册 a.illegrateAccountRegist() #实例化用户登录模块 b = userLogin.userlogin() #正确账号密码登录 b.accountLogin() #正确账号错误密码登录 b.wpasslogin()
def test(name): global author account = name passwd = "123456aA" ug = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36" url = "http://24mail.chacuo.net/zhtw" header = {} header['User-Agent'] = ug #请求临时邮箱,获取当前邮箱地址,和cookie r = requests.get(url, headers=header) # print(r.text) # print(r.headers['Set-Cookie']) l1 = re.compile(r'sid=(.*)$') l2 = l1.findall(r.headers['Set-Cookie']) token = l2[0] # print(token) html = BeautifulSoup(r.content, features='lxml') # print(html) tmp = str(html.input['value']) email = tmp + "@chacuo.net" print(email) eurl = "http://11.2.77.3/portal-test/user/account/system/add" addheader = {} addheader['Content-Type'] = "application/json" addheader['Authorization'] = author param = { "account": account, "departmentId": 17, "email": email, "name": "绝世美女Carry全场" + str(account), "roleId": 10 } #添加系统用户成功后,重置密码 res = requests.post(eurl, headers=addheader, data=json.dumps(param)) try: print(res.json()) # print(res.json()['code']) # con = pymysql.connect("192.168.15.21","root","Test~107443","j_portal") # cursor = con.cursor() # sql = "select id from user where account='{0}'".format(account) # cursor.execute(sql) # tmpid = cursor.fetchone() # print(tmpid[0]) uu = "http://11.2.77.3/portal-test/user/account/system/reset" pp = {} # pp['id'] = tmpid[0] # uu2 = requests.post(uu, headers=addheader, params=pp) # print('重置密码') # print(uu2.text) except KeyError: print('失败') sys.exit() #如果邮箱验证码发送成功,获取临时邮箱中的验证码 if res.json()['code'] == 200: time.sleep(5) reheader = {} reheader['User-Agent'] = ug reheader['X-Requested-With'] = "XMLHttpRequest" reheader['Cookie'] = "sid=" + token regurl = "http://11.2.77.3/portal-test/user/reg/email/add" eparam = {} eparam['data'] = tmp eparam['type'] = "refresh" eparam['arg'] = "" regheader = {} #循环10次,每次间隔10秒,如果仍没有获取就退出 for i in range(10): time.sleep(10) eres = requests.post(url, headers=reheader, params=eparam) # print(eres.text) if eres.json()['data'][0]['list']: mid = eres.json()['data'][0]['list'][0]['MID'] # print(mid) cparam = {} cparam['data'] = tmp cparam['type'] = "mailinfo" cparam['arg'] = "f=" + str(mid) code = requests.post(url, headers=reheader, params=cparam) # print(code.text) print(code.json()['data'][0][1][0]['DATA']) cc = code.json()['data'][0][1][0]['DATA'][0] ehtml = BeautifulSoup(cc, features='lxml') #获取到的密码 ccd = ehtml.find_all('span')[1] ccd = ccd.get_text() print(ccd) print(account) mtoken = userLogin.userlogin().accountLogin(account, ccd) print(mtoken) lasturl = "http://11.2.77.3/portal-test/user/person/update/pwd" lastheader = {} lastheader['Content-Type'] = "application/json" lastheader['Authorization'] = mtoken lastdata = {} lastdata["password"] = ccd lastdata["newPassword"] = passwd lastdata["confirmNewPassword"] = passwd lastres = requests.post(lasturl, headers=lastheader, data=json.dumps(lastdata)) print(lastres.text) print('success') break
def respondGet(self, result_code, url, header="", param="", upwd=None): """ 请求时需要4个参数, 预期的响应code, 完整url, 请求header,请求参数, 测试账号密码 函数返回一个字典{'body': , 'respondTime':, 'code':} """ #判断是否提供了测试用的用户名和密码,如果没有提供则使用默认账号,如果提供有误则没有身份认证信息 self.getheader['Authorization'] = self.session if upwd: try: upwd = json.loads(upwd) try: testsession = userLogin.userlogin().accountLogin( upwd['username'], upwd['passwd']) self.getheader['Authorization'] = testsession except requests.exceptions.ConnectionError: self.getheader['Authorization'] = "" except KeyError: self.getheader['Authorization'] = "" except json.decoder.JSONDecodeError: self.getheader['Authorization'] = "" s = requests.session() if not self.__analysisUrl(url): return None try: param = json.loads(param) except json.decoder.JSONDecodeError: param = {} if not isinstance(param, dict): print('get请求的参数格式有误') param = {} try: res = s.get(url, headers=self.getheader, params=param, timeout=self.timeout) except requests.exceptions.ConnectionError: print("请求URL无法连接") return None # print(res.status_code) # print(res.url) # print(res.text) #判断是否给了预期的code,如果没有结果为None if result_code: #如果code为200,判断响应json中的code是否和预期的值相等,如果解析json失败返回Error if res.status_code == 200: try: if str(res.json()['code']) == str(result_code.strip()): result = 'Success' else: result = 'Faile' except json.decoder.JSONDecodeError: result = 'Faile' except KeyError: result = 'Faile' #如果响应的code不是200 else: #判断预期的code与服务端的响应code是否相等,相等也认定为成功,不相等返回Error if str(res.status_code) == str(result_code.strip()): result = 'Success' else: result = 'Error' else: result = "None" # print(res.text.encode('utf-8').decode('utf-8'),res.elapsed.total_seconds(),res.status_code) rep = { 'body': res.text, 'respondTime': res.elapsed.total_seconds(), 'code': res.status_code, 'result': result } return rep
def respondPut(self, url, header="", data={}, upwd=None): """ 请求时需要3个参数,预期的响应code, 完整url,请求header,请求参数 函数返回一个字典{'body': , 'respondTime':, 'code':} """ #判断是否提供了测试用的用户名和密码,如果没有提供则使用默认账号,如果提供有误则没有身份认证信息 self.postheader_json['Authorization'] = self.session self.postheader_www['Authorization'] = self.session if upwd: try: upwd = json.loads(upwd) try: testsession = userLogin.userlogin().accountLogin( upwd['username'], upwd['passwd']) self.postheader_json['Authorization'] = testsession self.postheader_www['Authorization'] = testsession except requests.exceptions.ConnectionError: self.postheader_www['Authorization'] = "" self.postheader_json['Authorization'] = "" except KeyError: self.postheader_json['Authorization'] = "" self.postheader_www['Authorization'] = "" except json.decoder.JSONDecodeError: self.postheader_www['Authorization'] = "" self.postheader_json['Authorization'] = "" s = requests.session() self.pheader['Cookie'] = header try: res = s.get(url, headers=self.pheader, data=data, timeout=self.timeout) except requests.exceptions.MissingSchema: print('请求的Url地址有误') return None except requests.exceptions.ConnectionError: print("请求URL无法连接") return None # print(res.text.encode('utf-8').decode('utf-8'),res.elapsed.total_seconds(),res.status_code) #判断是否给了预期的code,如果没有结果为None if result_code: #如果code为200,判断响应json中的code是否和预期的值相等,如果解析json失败返回Error if res.status_code == 200: try: if str(res.json()['code']) == str(result_code.strip()): result = 'Success' else: result = 'Faile' except json.decoder.JSONDecodeError: result = 'Error' except KeyError: result = 'Error' #如果响应的code不是200 else: #判断预期的code与服务端的响应code是否相等,相等也认定为成功,不相等返回Error if str(res.status_code) == str(result_code.strip()): result = 'Success' else: result = 'Error' else: result = "None"
def respondPost(self, result_code, url, header="", data={}, upwd=None): """ 请求时需要4个参数,预期的响应code, 完整url,请求header,请求参数 函数返回一个字典{'body': , 'respondTime':, 'code':} """ #判断是否提供了测试用的用户名和密码,如果没有提供则使用默认账号,如果提供有误则没有身份认证信息 self.postheader_json['Authorization'] = self.session self.postheader_www['Authorization'] = self.session if not upwd: try: upwd = json.loads(upwd) try: testsession = userLogin.userlogin().accountLogin( upwd['username'], upwd['passwd']) self.postheader_json['Authorization'] = testsession self.postheader_www['Authorization'] = testsession except requests.exceptions.ConnectionError: self.postheader_json['Authorization'] = "" self.postheader_www['Authorization'] = "" except KeyError: self.postheader_json['Authorization'] = "" self.postheader_www['Authorization'] = "" except json.decoder.JSONDecodeError: self.postheader_json['Authorization'] = "" self.postheader_www['Authorization'] = "" try: data = json.loads(data) except json.decoder.JSONDecodeError: data = {} if not isinstance(data, dict): print('post请求的数据格式有误') param = {} s = requests.session() if header.strip() == "json": try: res = s.post(url, headers=self.postheader_json, data=json.dumps(data), timeout=self.timeout) print(url, self.postheader_json, data) except requests.exceptions.MissingSchema: print('请求的Url地址有误') return None except requests.exceptions.ConnectionError: print("请求URL无法连接") return None # print(res.url) # print(data) print(res.text, res.elapsed.total_seconds(), res.status_code) else: try: print('nojson') res = s.post(url, headers=self.postheader_www, data=data, timeout=self.timeout) except requests.exceptions.MissingSchema: print('请求的Url地址有误') return None except requests.exceptions.ConnectionError: print("请求URL无法连接") return None # print(res.url) # print(data) # print(res.text,res.elapsed.total_seconds(),res.status_code) #判断是否给了预期的code,如果没有结果为None if result_code: #如果code为200,判断响应json中的code是否和预期的值相等,如果解析json失败返回Error if res.status_code == 200: try: if str(res.json()['code']) == str(result_code.strip()): result = 'Success' else: result = 'Faile' except json.decoder.JSONDecodeError: result = 'Error' except KeyError: result = 'Error' #如果响应的code不是200 else: #判断预期的code与服务端的响应code是否相等,相等也认定为成功,不相等返回Error if str(res.status_code) == str(result_code.strip()): result = 'Success' else: result = 'Error' else: result = "None" rep = { 'body': res.text, 'respondTime': res.elapsed.total_seconds(), 'code': res.status_code, 'result': result } return rep