def test_payment(self, test_data): """ 测试支付场景 :param test_data: :return: """ res = get_response(self.url, self.method, data=json.dumps(test_data[0]), headers=self.headers) self.log.info('----------测试开始----------') self.log.info('测试场景:[{}]'.format(test_data[2])) self.log.info('测试断言-->期望值/校验值[{}]'.format(test_data[1])) self.log.info('请求参数:{}'.format(test_data[0])) self.assertIn(test_data[1], res.json()['message'], msg='测试不通过,失败原因:%s not in %s' % (test_data[1], res.json()['message'])) self.log.info('请求接口:{}'.format(self.url)) self.log.info('请求方法:{}'.format(self.method)) self.log.info('响应结果:{}'.format(res.json())) self.log.info('测试断言[{}]通过'.format(test_data[1])) self.log.info('----------测试通过----------') self.log.info( '=======================================================')
def edit_user_info(self): """ bms后台修改用户资料 :return: """ if 'false' not in self.data: self.data.replace('true', 'false') else: self.data.replace('false', 'true') try: resp = get_response(self.url, self.method, data=self.data, headers=self.header) # 未解密接口返回 resp_str = getJsonStr( resp.json()['data']).get_json_str() # 解密接口返回数据 resp = resp.json() resp['data'] = resp_str['data'] return resp except Exception as e: self.log.error('bms后台获取用户资料接口异常:{},请检查'.format(str(e))) # if __name__ == '__main__': # res = editUserInfo().edit_user_info() # print(res)
def get_betrecord_list(self): '''获取本月电子注单列表''' route = data[162]["route"] url = "".join(base.get_url(route)) Method = data[162]["method"] params = eval(data[162]["params"]) # 获取当前日期 date = datetime.datetime.now() year = date.year month = date.month today = datetime.date.today() # 今日 # 开始日期 start = datetime.date(year, month, 1) # 结束日期 if month == 12: end = datetime.date(year + 1, 1, 1) - datetime.timedelta(days=1) else: end = datetime.date(year, month + 1, 1) - datetime.timedelta(days=1) params["time_start"] = start params["time_end"] = today headers = {"Authorization": self.token} kwargs = {"params": params, "headers": headers} resp = base.get_response(url, Method, **kwargs) return resp
def test_CQ9_bet_details_daily(self): route = data[141]["route"] url = "".join(base.get_url(route)) Method = data[141]["method"] params = eval(data[141]["params"]) res = get_this_week_list.BetRecord().get_betrecord_list().json( )["data"]["list"] for d in res: date = d["date"]["date"] params["date"] = date headers = {"Authorization": get_token.GetRes().get_res()} kwargs = {"params": params, "headers": headers} resp = base.get_response(url, Method, **kwargs) self.log.info("----------test is start----------") self.log.info("请求的接口地址为: %s" % resp.url) self.log.info("请求的参数为: %s" % kwargs) self.log.info("响应内容为: %s" % resp.json()) self.log.info("响应状态码为: %s" % resp.status_code) self.assertEqual(data[141]["expect"], resp.json()["message"], msg="失败原因为%s != %s" % (data[141]["expect"], resp.json()["message"])) self.log.info("----------test is pass----------") self.log.info("----------test is end----------")
def get_res(self): '''获取token响应''' route = data[0]["route"] url = "".join(base.get_url(route)) Method = data[0]["method"] headers = eval(data[0]["header"]) kwargs = {"headers": headers} res = base.get_response(url, Method, **kwargs) return res
def get_json_str(self): try: res = get_response(self.url, method=self.method, headers=json.loads(self.headers), data=json.dumps(self.payload)).json() return res except Exception as e: print('请求错误{}'.format(e))
def get_res(self, threshold=120): '''获取token响应''' while True: route = data[0]["route"] url = "".join(base.get_url(route)) Method = data[0]["method"] json_data = eval(data[0]["data"]) # ------获取验证码------ code_url = cof.get_codeurl() while True: res = requests.get(code_url).json()["data"] captcha_image_text = res["captcha_image_text"].split(',')[ 1] # 获取图片 image_data = base64.b64decode(captcha_image_text) img_path = os.path.dirname( os.path.dirname(__file__)) + "/code.jpeg" with open(img_path, 'wb') as f: f.write(image_data) table = [] for i in range(256): if i < threshold: table.append(0) else: table.append(1) im = Image.open(img_path) # 图片的处理过程 im = im.convert('L') binaryImage = im.point(table, '1') im1 = binaryImage.convert('L') im2 = PIL.ImageOps.invert(im1) im3 = im2.convert('1') im4 = im3.convert('L') # 将图片中字符裁剪保留 box = (10, -5, 135, 50) region = im4.crop(box) # 将图片字符放大 out = region.resize((200, 60)) code = pytesseract.image_to_string(out) # 验证码 if len(code) != 4 or random.choice( string.ascii_letters + '/\{}[]?<>,.!@#$%^&*() +=-_') in code: print("验证码获取错误%s,正在重新获取..." % code) time.sleep(1) continue else: break captcha_key = res["captcha_key"] json_data["code"] = code # 验证码 json_data["captcha_key"] = captcha_key kwargs = {"json": json_data} try: res = base.get_response(url, Method, **kwargs).json()["data"] except Exception as e: continue else: return res["token"]
def get_key(self): '''获取key,用到后面游戏跳转''' route = data[0]["route"] url = "".join(base.get_url(route)) Method = "get" headers = {"x-token":eval(get_res.GetRes().get_res().text)['data']['token']} params = eval(data[0]["params"]) kwargs = {"params": params,"headers":headers} res = base.get_response(url, Method, **kwargs) return res
def get_gameid(self): '''获取providers信息''' route = data[1]["route"] url = "".join(base.get_url(route)) Method = data[1]["method"] headers = { "x-token": eval(get_res.GetRes().get_res().text)['data']['token'] } kwargs = {"headers": headers} resp = base.get_response(url, Method, **kwargs) return resp
def get_json_str(self): try: res = get_response(self.url, method=self.method, headers=json.loads(self.headers), data=json.dumps(self.payload)).json() self.log.info('正在解析加密数据==========') # self.log.info('解析结果为: {}'.format(res)) return res except Exception as e: print('请求错误{}'.format(e))
def get_member_level_list(self): """ bms-获取会员等级列表 :return: """ try: resp = get_response(self.url, self.method, data=json.dumps(self.data), headers=self.header) # 未解密接口返回 resp_str = getJsonStr(resp.json()['data']).get_json_str() # 解密接口返回数据 resp = resp.json() resp['data'] = resp_str['data'] return resp except Exception as e: self.log.error('bms后台获取会员等级表接口异常:{},请检查'.format(str(e)))
def test_game_jump(self): '''测试游戏跳转,用响应状态码来判断是否跳转成功,返回200则表示成功,其他则跳转失败''' Method = data[3]["method"] resp = base.get_response(self.url, Method) self.log.info("----------test is start----------") self.log.info("跳转连接为:%s" % self.url) self.log.info("响应状态码为: %s" % resp.status_code) self.assertEqual(data[3]["expect"], resp.status_code, msg="失败原因为: %s != %s" % (data[3]["expect"], resp.status_code)) self.log.info("----------test is pass----------") self.log.info("----------test is end----------")
def lock_user(self): """ 锁定会员账号 :return: """ try: resp = get_response(self.url, self.method, headers=self.header) # 未解密接口返回 resp_str = getJsonStr(resp.json()['data']).get_json_str() # 解密接口返回数据 resp = resp.json() resp['data'] = resp_str['data'] return resp except Exception as e: self.log.error('bms后台锁定会员账号接口异常:{},请检查'.format(str(e)))
def get_betrecord_list(self): '''获取本周视讯注单列表''' route = data[84]["route"] url = "".join(base.get_url(route)) Method = data[84]["method"] params = eval(data[84]["params"]) today = datetime.date.today() params["time_start"] = today - datetime.timedelta(days=today.weekday()) # 周一,开始时间 params["time_end"] = today # 今天,结束时间 headers = {"Authorization": self.token} kwargs = {"params": params, "headers": headers} resp = base.get_response(url, Method, **kwargs) return resp
def get_gameurl(self): '''获取游戏大厅url,进行跳转''' res = get_res.GetRes().get_res().text # 调用get_res模块,获取包含token的响应 token = eval(res)["data"]["token"] # 获取token route = data[2]["route"] url = "".join(base.get_url(route)) Method = data[2]["method"] params = {"key":eval(get_key.GetKey().get_key().text)["data"]["key"]} headers = {"x-token":token} kwargs = {"params": params, "headers": headers} resp = base.get_response(url,Method,**kwargs) return resp
def get_log_list(self): """ 获取bms后台用户日志操作列表 :return: """ try: resp = get_response(self.url, self.method, headers=self.header) # 未解密接口返回 resp_str = getJsonStr(resp.json()['data']).get_json_str() # 解密接口返回数据 resp = resp.json() resp['data'] = resp_str['data'] return resp except Exception as e: self.log.error('bms后台获取用户操作日志列表接口异常:{},请检查'.format(str(e)))
def get_token(self): """ 获取app登录token :return:token """ try: test_data = get_test_data('/fresh_data.xlsx', 'app', 0) res = get_response(test_data['route'], test_data['method'], data=test_data['data'], headers=eval(test_data['header'])) return res.json()['response']['token'] except Exception as e: self.log.error('获取token出现异常:{}'.format(str(e)))
def get_token(self): """ 获取PC登录token :return:token """ try: test_data = get_test_data('/fresh_data.xlsx', 'pc', 0) # data_dict = dict(zip(test_data[0], test_data[1][0])) res = get_response(test_data.get('route'), test_data.get('method'), data=test_data.get('data'), headers=eval(test_data.get('header'))) token = res.json()['result']['loginToken'] return token except Exception as e: self.log.error('出现异常:{}'.format(str(e)))
def add_admin_user(self): """ 新增bms后台管理用户 :return: """ if databaseOperations().select_user('sys_user', 'username'): databaseOperations().delete_user('sys_user', 'username') try: resp = get_response(self.url, self.method, data=json.dumps(self.payload), headers=self.header) # 未解密接口返回 resp_str = getJsonStr(resp.json()['data']).get_json_str() # 解密接口返回数据 resp = resp.json() resp['data'] = resp_str['data'] return resp except Exception as e: self.log.error('新增bms后台管理用户接口异常:{},请检查'.format(str(e)))
def disable_withdraw(self): """ 禁止会员提现 :return: """ try: resp = get_response(self.url, self.method, headers=self.header) # 未解密接口返回 resp_str = getJsonStr( resp.json()['data']).get_json_str() # 解密接口返回数据 resp = resp.json() resp['data'] = resp_str['data'] return resp except Exception as e: self.log.error('bms后台禁止会员提现接口异常:{},请检查'.format(str(e)))
def build_register_code(self): """ 生成注册码 :return: """ try: resp = get_response(self.url, self.method, headers=self.header) # 未解密接口返回 resp_str = getJsonStr( resp.json()['data']).get_json_str() # 解密接口返回数据 resp = resp.json() resp['data'] = resp_str['data'] return resp except Exception as e: self.log.error('bms后台生成注册码接口异常:{},请检查'.format(str(e)))
def get_token(self): """ 获取app登录token :return:token """ try: resp = get_response(self.url, self.method, data=self.payload, headers=self.header) token = resp.json()['token_type'] + ' ' + resp.json( )['access_token'] return token except Exception as e: self.log.error('获取token出现异常:{},请检查登录接口请求'.format(str(e)))
def reset_google(self): """ 重置谷歌验证码 :return: """ try: resp = get_response(self.url, self.method, headers=self.header) # 未解密接口返回 resp_str = getJsonStr( resp.json()['data']).get_json_str() # 解密接口返回数据 resp = resp.json() resp['data'] = resp_str['data'] return resp except Exception as e: self.log.error('bms后台用户重置接口异常:{},请检查'.format(str(e)))
def get_menu_tree(self): """ 获取bms后台菜单 :return: """ try: resp = get_response(self.url, self.method, headers=self.header) # 未解密接口返回 resp_str = getJsonStr( resp.json()['data']).get_json_str() # 解密接口返回数据 resp = resp.json() resp['data'] = resp_str['data'] return resp except Exception as e: self.log.error('获取bms后台菜单接口异常:{},请检查'.format(str(e)))
def test_login(self): route = data[0]["route"] url = "".join(base.get_url(route)) Method = data[0]["method"] headers = {"Authorization":self.token} kwargs = {"headers": headers} resp = base.get_response(url, Method, **kwargs) self.log.info("----------test is start----------") self.log.info("请求的接口地址为: %s" % url) self.log.info("请求的参数为: %s" % kwargs) self.log.info("响应内容为: %s" % resp.text) self.log.info("响应状态码为: %s" % resp.status_code) self.assertIn(data[0]["expect"], resp.text, msg="失败原因为%s not in %s" % (data[0]["expect"], resp.text)) self.log.info("----------test is pass----------") self.log.info("----------test is end----------")
def purchase_order(self): """ 制单接口 :return: """ headers = eval(self.test_data.get('header')) headers['login-token'] = self.token url = self.test_data.get('route') + self.key try: res = get_response(url, self.test_data.get('method'), data=self.test_data.get('data').encode('utf-8'), headers=headers) return res except Exception as e: self.log.error('请求异常%s' % e)
def test_query_quota_list(self, ): """ 测试获取额度维护全部列表 expect: 期望值 :return: """ url = self.test_data.get('route') headers = eval(self.test_data.get('header')) headers['login-token'] = self.token data = self.test_data.get('data') res = get_response(url, self.test_data.get('method'), data=data, headers=headers) print(res.json()) print(get_test_data('/fresh_data.xlsx', 'pc', 1).get('expect'))
def get_user_bet_details(self): """ bms后台获取会员注单详情 :return: """ try: resp = get_response(self.url, self.method, data=self.data, headers=self.header) # 未解密接口返回 resp_str = getJsonStr( resp.json()['data']).get_json_str() # 解密接口返回数据 resp = resp.json() resp['data'] = resp_str['data'] return resp except Exception as e: self.log.error('bms后台获取会员注单详情接口异常:{},请检查'.format(str(e)))
def get_admin_user(self): """ 获取bms后台管理用户列表 :return: """ try: resp = get_response(self.url, self.method, data=json.dumps(self.payload), headers=self.header) # 未解密接口返回 resp_str = getJsonStr( resp.json()['data']).get_json_str() # 解密接口返回数据 resp = resp.json() resp['data'] = resp_str['data'] return resp except Exception as e: self.log.error('获取bms后台用户接口异常:{},请检查'.format(str(e)))
def login_log(self): """ 会员登录日志 :return: """ try: resp = get_response(self.url, self.method, data=self.data, headers=self.header) # 未解密接口返回 resp_str = getJsonStr( resp.json()['data']).get_json_str() # 解密接口返回数据 resp = resp.json() resp['data'] = resp_str['data'] return resp except Exception as e: self.log.error('bms后台会员登录日志列表接口异常:{},请检查'.format(str(e)))