Commit 5c0c2f9d by fanxun

账号与安全用例梳理11

parent a9778216
__author__ = 'fanxun' __author__ = 'fanxun'
__data__ = "2021-05-31 16:19" __data__ = "2021-05-31 16:19"
import xlrd, pytest, allure, os
from config import BMCConfig
from common.utils.getExcelData import get_excelData
from common.tools import request_main
@allure.feature('账号与安全')
class TestAccountAndSecurity(): class TestAccountAndSecurity():
"""账号与安全""" """账号与安全"""
pass workBook = xlrd.open_workbook(f'{BMCConfig.root_path}/test_case_data/bmc/bmc_account_and_security.xlsx')
@allure.story("绘制势密码")
@allure.link("http://yapi.hikcreate.com/project/31/interface/api/10769")
@allure.description("/user/verifyGesture")
@allure.title("{inData[testPoint]}")
@pytest.mark.parametrize("inData", get_excelData(workBook, '账号与安全', 'verifyGestureAccountSecurity'))
def test_verify_gesture(self, inData):
url = f"{BMCConfig().pvthost}{inData['url']}"
method = inData['method']
req_data = inData['reqData']
expectData = inData['expectData']
headers = inData['headers']
res = request_main(url=url, headers=headers, method=method, data=req_data, has_token=False)
allure.attach("{0}".format(res), "用例结果")
assert res['code'] == expectData['code']
@allure.story("获取图形验证码")
@allure.link("http://yapi.hikcreate.com/project/31/interface/api/20446")
@allure.description("/sys/captcha")
@allure.title("{inData[testPoint]}")
@pytest.mark.parametrize("inData", get_excelData(workBook, '账号与安全', 'captchaAccountSecurity'))
def test_captcha(self, inData):
url = f"{BMCConfig().pvthost}{inData['url']}"
method = inData['method']
req_data = inData['reqData']
expectData = inData['expectData']
headers = inData['headers']
res = request_main(url=url, headers=headers, method=method, data=req_data, has_token=False)
allure.attach("{0}".format(res), "用例结果")
assert res['code'] == expectData['code']
@allure.story("拼图校验情况")
@allure.link("http://yapi.hikcreate.com/project/31/interface/api/10944")
@allure.description("/v1/user/login/verifyCode/detail")
@allure.title("{inData[testPoint]}")
@pytest.mark.parametrize("inData", get_excelData(workBook, '账号与安全', 'verifyCodedetailAccountSecurity'))
def test_verify_code_detail(self, inData):
url = f"{BMCConfig().pvthost}{inData['url']}"
method = inData['method']
req_data = inData['reqData']
expectData = inData['expectData']
headers = inData['headers']
res = request_main(url=url, headers=headers, method=method, data=req_data, has_token=False)
allure.attach("{0}".format(res), "用例结果")
assert res['code'] == expectData['code']
@allure.story("验证码输入")
@allure.link("http://yapi.hikcreate.com/project/31/interface/api/10943")
@allure.description("/user/login/verifyCode")
@allure.title("{inData[testPoint]}")
@pytest.mark.parametrize("inData", get_excelData(workBook, '账号与安全', 'loginverifyCodeAccountSecurity'))
def test_login_verify_code(self, inData):
url = f"{BMCConfig().pvthost}{inData['url']}"
method = inData['method']
req_data = inData['reqData']
expectData = inData['expectData']
headers = inData['headers']
res = request_main(url=url, headers=headers, method=method, data=req_data, has_token=False)
allure.attach("{0}".format(res), "用例结果")
assert res['code'] == expectData['code']
@allure.story("手势密码修改")
@allure.link("http://yapi.hikcreate.com/project/31/interface/api/10764")
@allure.description("/user/gesture")
@allure.title("{inData[testPoint]}")
@pytest.mark.parametrize("inData", get_excelData(workBook, '账号与安全', 'gestureAccountSecurity'))
def test_gesture(self, inData):
url = f"{BMCConfig().pvthost}{inData['url']}"
method = inData['method']
req_data = inData['reqData']
expectData = inData['expectData']
headers = inData['headers']
res = request_main(url=url, headers=headers, method=method, data=req_data, has_token=False)
allure.attach("{0}".format(res), "用例结果")
assert res['code'] == expectData['code']
@allure.story("字符密码修改")
@allure.link("http://yapi.hikcreate.com/project/31/interface/api/4726")
@allure.description("/user/password")
@allure.title("{inData[testPoint]}")
@pytest.mark.parametrize("inData", get_excelData(workBook, '账号与安全', 'passwordAccountSecurity'))
def test_password(self, inData):
url = f"{BMCConfig().pvthost}{inData['url']}"
method = inData['method']
req_data = inData['reqData']
expectData = inData['expectData']
headers = inData['headers']
res = request_main(url=url, headers=headers, method=method, data=req_data, has_token=False)
allure.attach("{0}".format(res), "用例结果")
assert res['code'] == expectData['code']
@allure.story("旧手机号验证码")
@allure.link("http://yapi.hikcreate.com/project/31/interface/api/1492")
@allure.description("/user/phone/old/verifyCode")
@allure.title("{inData[testPoint]}")
@pytest.mark.parametrize("inData", get_excelData(workBook, '账号与安全', 'oldverifyCodeAccountSecurity'))
def test_old_verify_code(self, inData):
url = f"{BMCConfig().pvthost}{inData['url']}"
method = inData['method']
req_data = inData['reqData']
expectData = inData['expectData']
headers = inData['headers']
res = request_main(url=url, headers=headers, method=method, data=req_data, has_token=False)
allure.attach("{0}".format(res), "用例结果")
assert res['code'] == expectData['code']
@allure.story("新手机号验证码")
@allure.link("http://yapi.hikcreate.com/project/31/interface/api/4957")
@allure.description("/user/phone/new/verifyCode")
@allure.title("{inData[testPoint]}")
@pytest.mark.parametrize("inData", get_excelData(workBook, '账号与安全', 'newverifyCodeAccountSecurity'))
def test_new_verify_code(self, inData):
url = f"{BMCConfig().pvthost}{inData['url']}"
method = inData['method']
req_data = inData['reqData']
expectData = inData['expectData']
headers = inData['headers']
res = request_main(url=url, headers=headers, method=method, data=req_data, has_token=False)
allure.attach("{0}".format(res), "用例结果")
assert res['code'] == expectData['code']
@allure.story("更换手机号")
@allure.link("http://yapi.hikcreate.com/project/31/interface/api/1496")
@allure.description("/user/phone")
@allure.title("{inData[testPoint]}")
@pytest.mark.parametrize("inData", get_excelData(workBook, '账号与安全', 'phoneAccountSecurity'))
def test_phone(self, inData):
url = f"{BMCConfig().pvthost}{inData['url']}"
method = inData['method']
req_data = inData['reqData']
expectData = inData['expectData']
headers = inData['headers']
res = request_main(url=url, headers=headers, method=method, data=req_data, has_token=False)
allure.attach("{0}".format(res), "用例结果")
assert res['code'] == expectData['code']
@allure.story("账号数据找回")
@allure.link("http://yapi.hikcreate.com/project/31/interface/api/78204")
@allure.description("/user/change/binding/verifyCode")
@allure.title("{inData[testPoint]}")
@pytest.mark.parametrize("inData", get_excelData(workBook, '账号与安全', 'bindingverifyCodeAccountSecurity'))
def test_binding_verify_code(self, inData):
url = f"{BMCConfig().pvthost}{inData['url']}"
method = inData['method']
req_data = inData['reqData']
expectData = inData['expectData']
headers = inData['headers']
res = request_main(url=url, headers=headers, method=method, data=req_data, has_token=False)
allure.attach("{0}".format(res), "用例结果")
assert res['code'] == expectData['code']
@allure.story("原账号信息")
@allure.link("http://yapi.hikcreate.com/project/31/interface/api/78206")
@allure.description("/user/change/binding/verify")
@allure.title("{inData[testPoint]}")
@pytest.mark.parametrize("inData", get_excelData(workBook, '账号与安全', 'bindingverifyAccountSecurity'))
def test_binding_verify(self, inData):
url = f"{BMCConfig().pvthost}{inData['url']}"
method = inData['method']
req_data = inData['reqData']
expectData = inData['expectData']
headers = inData['headers']
res = request_main(url=url, headers=headers, method=method, data=req_data, has_token=False)
allure.attach("{0}".format(res), "用例结果")
assert res['code'] == expectData['code']
@allure.story("实名信息认证")
@allure.link("http://yapi.hikcreate.com/project/31/interface/api/78208")
@allure.description("/user/change/binding/idAuth")
@allure.title("{inData[testPoint]}")
@pytest.mark.parametrize("inData", get_excelData(workBook, '账号与安全', 'idAuthAccountSecurity'))
def test_id_auth(self, inData):
url = f"{BMCConfig().pvthost}{inData['url']}"
method = inData['method']
req_data = inData['reqData']
expectData = inData['expectData']
headers = inData['headers']
res = request_main(url=url, headers=headers, method=method, data=req_data, has_token=False)
allure.attach("{0}".format(res), "用例结果")
assert res['code'] == expectData['code']
@allure.story("账号换绑")
@allure.link("http://yapi.hikcreate.com/project/31/interface/api/78210")
@allure.description("/user/change/binding")
@allure.title("{inData[testPoint]}")
@pytest.mark.parametrize("inData", get_excelData(workBook, '账号与安全', 'changebindingAccountSecurity'))
def test_change_binding(self, inData):
url = f"{BMCConfig().pvthost}{inData['url']}"
method = inData['method']
req_data = inData['reqData']
expectData = inData['expectData']
headers = inData['headers']
res = request_main(url=url, headers=headers, method=method, data=req_data, has_token=False)
allure.attach("{0}".format(res), "用例结果")
assert res['code'] == expectData['code']
if __name__ == '__main__':
pytest.main(['-s', '-v', 'test_account_and_security.py',
r'--alluredir=D:\项目\接口自动化\InterfaceAutoTest\report', '--clean-alluredir'])
os.system('allure serve D:\项目\接口自动化\InterfaceAutoTest\\report')
......
...@@ -14,37 +14,37 @@ from common.tools import request_main ...@@ -14,37 +14,37 @@ from common.tools import request_main
from config import BMCConfig from config import BMCConfig
# @allure.feature("账号信息基本功能") @allure.feature("账号信息基本功能")
# class TestLogin(): class TestLogin():
# workBook = xlrd.open_workbook(f'{BMCConfig.root_path}/test_case_data/bmc/bmc_login_20210513.xlsx') workBook = xlrd.open_workbook(f'{BMCConfig.root_path}/test_case_data/bmc/bmc_login_20210513.xlsx')
# @allure.story("登录") @allure.story("登录")
# @allure.severity("") @allure.severity("")
# @allure.title("{inData[testPoint]}") @allure.title("{inData[testPoint]}")
# @allure.testcase("{inData[yapiAddress]}") @allure.testcase("{inData[yapiAddress]}")
# @allure.description("url:/auth/login 。。。。") @allure.description("url:/auth/login 。。。。")
# @pytest.mark.parametrize("inData", get_excelData(workBook,'登录', 'login')) @pytest.mark.parametrize("inData", get_excelData(workBook,'登录', 'login'))
# def test_login(self,inData): def test_login(self,inData):
# url = f"{BMCConfig().host}{inData['url']}" url = f"{BMCConfig().host}{inData['url']}"
# method = inData['method'] method = inData['method']
# req_data = inData['reqData'] req_data = inData['reqData']
# expectData = inData['expectData'] expectData = inData['expectData']
# headers = config.BMCConfig.loginheader headers = config.BMCConfig.loginheader
# res = request_main(url= url,headers = headers,method =method,data = req_data,has_token=True) res = request_main(url= url,headers = headers,method =method,data = req_data,has_token=True)
# assert res['code'] == expectData['code'] assert res['code'] == expectData['code']
#
# @allure.story("激活") @allure.story("激活")
# @allure.link("") @allure.link("")
# @allure.description("/user/credit/idAuth") @allure.description("/user/credit/idAuth")
# @allure.title("{inData[testPoint]}") @allure.title("{inData[testPoint]}")
# @pytest.mark.parametrize("inData", get_excelData(workBook, '登录', 'Active')) @pytest.mark.parametrize("inData", get_excelData(workBook, '登录', 'Active'))
# def test_active(self,inData): def test_active(self,inData):
# url = f"{BMCConfig().host}{inData['url']}" url = f"{BMCConfig().host}{inData['url']}"
# method = inData['method'] method = inData['method']
# req_data = inData['reqData'] req_data = inData['reqData']
# expectData = inData['expectData'] expectData = inData['expectData']
# headers = config.BMCConfig.headers headers = config.BMCConfig.headers
# res = request_main(url=url, headers=headers, method=method, data=req_data) res = request_main(url=url, headers=headers, method=method, data=req_data)
# assert res['code'] == expectData['code'] assert res['code'] == expectData['code']
class TestRegister(): class TestRegister():
...@@ -56,238 +56,238 @@ class TestRegister(): ...@@ -56,238 +56,238 @@ class TestRegister():
"""数据库操作""" """数据库操作"""
self.ms = MYSQL('10.197.236.190', 3306, 'root', '123456', 'edl_public') self.ms = MYSQL('10.197.236.190', 3306, 'root', '123456', 'edl_public')
# @allure.story("获取用户登录类型") @allure.story("获取用户登录类型")
# @allure.link("http://yapi.hikcreate.com/project/31/interface/api/10745") @allure.link("http://yapi.hikcreate.com/project/31/interface/api/10745")
# @allure.description("/v1/user/login/type") @allure.description("/v1/user/login/type")
# @allure.title("{inData[testPoint]}") @allure.title("{inData[testPoint]}")
# @pytest.mark.flaky(reruns=2) @pytest.mark.flaky(reruns=2)
# @pytest.mark.parametrize("inData", get_excelData(workBook, '账号信息基本功能', 'logintypeRegister')) @pytest.mark.parametrize("inData", get_excelData(workBook, '账号信息基本功能', 'logintypeRegister'))
# def test_login_type_register(self, inData): def test_login_type_register(self, inData):
# url = f"{BMCConfig().host}{inData['url']}" url = f"{BMCConfig().host}{inData['url']}"
# method = inData['method'] method = inData['method']
# req_data = inData['reqData'] req_data = inData['reqData']
# expectData = inData['expectData'] expectData = inData['expectData']
# headers = inData['headers'] headers = inData['headers']
# phone = req_data['phone'] phone = req_data['phone']
# if not phone: if not phone:
# res = request_main(url=url, headers=headers, method=method, data=req_data, has_token=False) res = request_main(url=url, headers=headers, method=method, data=req_data, has_token=False)
# assert res['code'] == expectData['code'] assert res['code'] == expectData['code']
# else: else:
# resList = self.ms.ExecuQuery(f'SELECT * FROM edl_public.user where phone={phone};') resList = self.ms.ExecuQuery(f'SELECT * FROM edl_public.user where phone={phone};')
# if resList: # 已经注册过 if resList: # 已经注册过
# user_id = self.resList[0]['id'] user_id = self.resList[0]['id']
# self.ms.ExecuNonQuery( self.ms.ExecuNonQuery(
# f'delete from edl_public.user where id={user_id};') f'delete from edl_public.user where id={user_id};')
# res = request_main(url=url, headers=headers, method=method, data=req_data, has_token=False) res = request_main(url=url, headers=headers, method=method, data=req_data, has_token=False)
# allure.attach("{0}".format(res), "用例结果") allure.attach("{0}".format(res), "用例结果")
# assert res['code'] == expectData['code'] assert res['code'] == expectData['code']
#
# @allure.story("获取图形验证码")
# @allure.link("http://yapi.hikcreate.com/project/31/interface/api/20446")
# @allure.description("/sys/captcha")
# @allure.title("{inData[testPoint]}")
# @pytest.mark.parametrize("inData", get_excelData(workBook, '账号信息基本功能', 'captchaRegister'))
# def test_captcha_register(self, inData):
# url = f"{BMCConfig().host}{inData['url']}"
# method = inData['method']
# req_data = inData['reqData']
# expectData = inData['expectData']
# headers = inData['headers']
# res = request_main(url=url, headers=headers, method=method, data=req_data, has_token=False)
# allure.attach("{0}".format(res), "用例结果")
# assert res['code'] == expectData['code']
# @pytest.fixture() @allure.story("获取图形验证码")
# def test_picture(self): @allure.link("http://yapi.hikcreate.com/project/31/interface/api/20446")
# """获取图形验证码""" @allure.description("/sys/captcha")
# url = f"{BMCConfig().host}/sys/captcha" @allure.title("{inData[testPoint]}")
# method = 'get' @pytest.mark.parametrize("inData", get_excelData(workBook, '账号信息基本功能', 'captchaRegister'))
# req_data = {"bCityCode":"520100","bizType":"1"} def test_captcha_register(self, inData):
# headers = None url = f"{BMCConfig().host}{inData['url']}"
# res = request_main(url=url, headers=headers, method=method, data=req_data, has_token=False) method = inData['method']
# return res req_data = inData['reqData']
# # expectData = inData['expectData']
# @allure.story("图形短信验证码") headers = inData['headers']
# @allure.link("http://yapi.hikcreate.com/project/31/interface/api/10943") res = request_main(url=url, headers=headers, method=method, data=req_data, has_token=False)
# @allure.description("/v1/user/login/verifyCode/detail") allure.attach("{0}".format(res), "用例结果")
# @allure.title("{inData[testPoint]}") assert res['code'] == expectData['code']
# @pytest.mark.parametrize("inData", get_excelData(workBook, '账号信息基本功能', 'verifyCodedetailRegister'))
# def test_verify_code_detail_register(self, inData, test_picture):
# url = f"{BMCConfig().host}{inData['url']}"
# method = inData['method']
# req_data = inData['reqData']
# expectData = inData['expectData']
# headers = inData['headers']
# casenum = inData['caseNum']
# phone = req_data['phone']
#
# jtId = test_picture['data']['jtId']
# req_data['jtId'] = jtId
# horPercent = int(RedisString(0).get(f'bmc:captcha:{jtId}'))
# req_data['horPercent'] = horPercent
# if casenum == 'verifyCodedetailRegister006':
# req_data['horPercent'] = None
# elif casenum == 'verifyCodedetailRegister007':
# req_data['horPercent'] = 1
# elif casenum == 'verifyCodedetailRegister008':
# req_data['jtId'] = None
# # elif casenum == 'verifyCodedetailRegister009' or casenum == 'verifyCodedetailRegister010':
# # time.sleep(61)
# # pass
# if not phone:
# res = request_main(url=url, headers=headers, method=method, data=req_data, has_token=False)
# # 发送次数过多
# if res['msg'] == '验证码发送次数过多,请24小时后再试' or '发送的间隔时间' in res['msg']:
# expectData['code'] = 1006
# assert res['code'] == expectData['code']
# else:
# resList = self.ms.ExecuQuery(f'SELECT * FROM edl_public.user where phone={phone};')
# if resList:
# user_id = resList[0]['id']
# self.ms.ExecuNonQuery(
# f'delete from edl_public.user where id={user_id};')
# res = request_main(url=url, headers=headers, method=method, data=req_data, has_token=False)
# allure.attach("{0}".format(res), "用例结果")
# # 发送次数过多
# if res['msg'] == '验证码发送次数过多,请24小时后再试' or '发送的间隔时间' in res['msg']:
# expectData['code'] = 1006
# assert res['code'] == expectData['code']
# @pytest.fixture() @pytest.fixture()
# def test_pre_message(self): def test_picture(self):
# """请求短信验证码""" """获取图形验证码"""
# # 获取图片验证码 url = f"{BMCConfig().host}/sys/captcha"
# url1 = f"{BMCConfig().host}/sys/captcha" method = 'get'
# method1 = 'get' req_data = {"bCityCode":"520100","bizType":"1"}
# req_data1 = {"bCityCode":"520100","bizType":"1"} headers = None
# headers = None res = request_main(url=url, headers=headers, method=method, data=req_data, has_token=False)
# res_picture = request_main(url=url1, headers=headers, method=method1, data=req_data1, has_token=False) return res
#
# # 获取短信验证码
# url = f"{BMCConfig().host}/v1/user/login/verifyCode/detail"
# method = 'post'
# req_data = {"phone":"15999009999","bizType":1,"horPercent":None,"jtId":None,"bCityCode":"520100","bNetTag":"trf_mgt"}
# headers = None
# phone = req_data['phone']
#
# jtId = res_picture['data']['jtId']
# req_data['jtId'] = jtId
# horPercent = int(RedisString(0).get(f'bmc:captcha:{jtId}'))
# req_data['horPercent'] = horPercent
# resList = self.ms.ExecuQuery(f'SELECT * FROM edl_public.user where phone={phone};')
# if resList:
# user_id = resList[0]['id']
# self.ms.ExecuNonQuery(
# f'delete from edl_public.user where id={user_id};')
# res = request_main(url=url, headers=headers, method=method, data=req_data, has_token=False)
# #
# @allure.story("短信验证") @allure.story("图形短信验证码")
# @allure.link("http://yapi.hikcreate.com/project/31/interface/api/10787") @allure.link("http://yapi.hikcreate.com/project/31/interface/api/10943")
# @allure.description("/user/login/verifyCode") @allure.description("/v1/user/login/verifyCode/detail")
# @allure.title("{inData[testPoint]}") @allure.title("{inData[testPoint]}")
@pytest.mark.parametrize("inData", get_excelData(workBook, '账号信息基本功能', 'verifyCodedetailRegister'))
def test_verify_code_detail_register(self, inData, test_picture):
url = f"{BMCConfig().host}{inData['url']}"
method = inData['method']
req_data = inData['reqData']
expectData = inData['expectData']
headers = inData['headers']
casenum = inData['caseNum']
phone = req_data['phone']
jtId = test_picture['data']['jtId']
req_data['jtId'] = jtId
horPercent = int(RedisString(0).get(f'bmc:captcha:{jtId}'))
req_data['horPercent'] = horPercent
if casenum == 'verifyCodedetailRegister006':
req_data['horPercent'] = None
elif casenum == 'verifyCodedetailRegister007':
req_data['horPercent'] = 1
elif casenum == 'verifyCodedetailRegister008':
req_data['jtId'] = None
# elif casenum == 'verifyCodedetailRegister009' or casenum == 'verifyCodedetailRegister010':
# time.sleep(61)
# pass
if not phone:
res = request_main(url=url, headers=headers, method=method, data=req_data, has_token=False)
# 发送次数过多
if res['msg'] == '验证码发送次数过多,请24小时后再试' or '发送的间隔时间' in res['msg']:
expectData['code'] = 1006
assert res['code'] == expectData['code']
else:
resList = self.ms.ExecuQuery(f'SELECT * FROM edl_public.user where phone={phone};')
if resList:
user_id = resList[0]['id']
self.ms.ExecuNonQuery(
f'delete from edl_public.user where id={user_id};')
res = request_main(url=url, headers=headers, method=method, data=req_data, has_token=False)
allure.attach("{0}".format(res), "用例结果")
# 发送次数过多
if res['msg'] == '验证码发送次数过多,请24小时后再试' or '发送的间隔时间' in res['msg']:
expectData['code'] = 1006
assert res['code'] == expectData['code']
@pytest.fixture()
def test_pre_message(self):
"""请求短信验证码"""
# 获取图片验证码
url1 = f"{BMCConfig().host}/sys/captcha"
method1 = 'get'
req_data1 = {"bCityCode":"520100","bizType":"1"}
headers = None
res_picture = request_main(url=url1, headers=headers, method=method1, data=req_data1, has_token=False)
# 获取短信验证码
url = f"{BMCConfig().host}/v1/user/login/verifyCode/detail"
method = 'post'
req_data = {"phone":"15999009999","bizType":1,"horPercent":None,"jtId":None,"bCityCode":"520100","bNetTag":"trf_mgt"}
headers = None
phone = req_data['phone']
jtId = res_picture['data']['jtId']
req_data['jtId'] = jtId
horPercent = int(RedisString(0).get(f'bmc:captcha:{jtId}'))
req_data['horPercent'] = horPercent
resList = self.ms.ExecuQuery(f'SELECT * FROM edl_public.user where phone={phone};')
if resList:
user_id = resList[0]['id']
self.ms.ExecuNonQuery(
f'delete from edl_public.user where id={user_id};')
res = request_main(url=url, headers=headers, method=method, data=req_data, has_token=False)
@allure.story("短信验证")
@allure.link("http://yapi.hikcreate.com/project/31/interface/api/10787")
@allure.description("/user/login/verifyCode")
@allure.title("{inData[testPoint]}")
@pytest.mark.flaky(reruns=1)
@pytest.mark.parametrize("inData", get_excelData(workBook, '账号信息基本功能', 'loginverifyCodeRegister'))
def test_login_verify_code_register(self, inData, test_pre_message):
url = f"{BMCConfig().host}{inData['url']}"
method = inData['method']
req_data = inData['reqData']
expectData = inData['expectData']
headers = inData['headers']
casenum = inData['caseNum']
phone = req_data['phone']
pre = test_pre_message
if not phone:
res = request_main(url=url, headers=headers, method=method, data=req_data, has_token=False)
assert res['code'] == expectData['code']
else:
resList = self.ms.ExecuQuery(f'SELECT * FROM edl_public.user where phone={phone};')
if resList:
user_id = resList[0]['id']
self.ms.ExecuNonQuery(
f'delete from edl_public.user where id={user_id};')
if casenum == 'loginverifyCodeRegister004' or casenum == 'loginverifyCodeRegister005':
try:
verifyCode = int(RedisString(0).get(f'edl:sms_value:{phone}:MOBILE_REGISTER'))
except Exception:
expectData['code'] = 1006
else:
req_data['verifyCode'] = verifyCode
res = request_main(url=url, headers=headers, method=method, data=req_data, has_token=False)
allure.attach("{0}".format(res), "用例结果")
assert res['code'] == expectData['code']
@pytest.fixture()
def test_pre_gesture_login(self):
"""请求令牌"""
# 获取图片验证码
picture_url = f"{BMCConfig().host}/sys/captcha"
picture_method = 'get'
picture_req_data = {"bCityCode": "520100", "bizType": "1"}
picture_headers = None
res_picture = request_main(url=picture_url, headers=picture_headers, method=picture_method, data=picture_req_data, has_token=False)
# 获取短信验证码
pic_msg_url = f"{BMCConfig().host}/v1/user/login/verifyCode/detail"
pic_msg_method = 'post'
pic_msg_req_data = {"phone": "15999099999", "bizType": 1, "horPercent": None, "jtId": None, "bCityCode": "520100",
"bNetTag": "trf_mgt"}
pic_msg_headers = None
phone = pic_msg_req_data['phone']
jtId = res_picture['data']['jtId']
pic_msg_req_data['jtId'] = jtId
horPercent = int(RedisString(0).get(f'bmc:captcha:{jtId}'))
pic_msg_req_data['horPercent'] = horPercent
resList = self.ms.ExecuQuery(f'SELECT * FROM edl_public.user where phone={phone};')
if resList:
user_id = resList[0]['id']
self.ms.ExecuNonQuery(
f'delete from edl_public.user where id={user_id};')
RedisString(0).delete_key(f"edl:sms_total:{phone}")
RedisString(0).delete_key(f"edl:sms_one_total:{phone}")
request_main(url=pic_msg_url, headers=pic_msg_headers, method=pic_msg_method, data=pic_msg_req_data, has_token=False)
# 短信验证
message_url = f"{BMCConfig().host}/user/login/verifyCode"
message_method = 'post'
message_req_data = {"phone":"15999099999","bizType":1,"bCityCode":"520100","bNetTag":"trf_mgt","verifyCode":""}
message_headers = None
try:
verifyCode = int(RedisString(0).get(f'edl:sms_value:{phone}:MOBILE_REGISTER'))
except Exception as e:
raise TypeError('验证码发送次数过多,请24小时后再试')
else:
message_req_data['verifyCode'] = verifyCode
res = request_main(url=message_url, headers=message_headers, method=message_method, data=message_req_data, has_token=False)
return res # {'success': True, 'code': 1000, 'msg': '操作成功', 'errorMsg': '操作成功', 'data': {'oneTimeToken': '357c8d80-e135-41a0-baae-009893f50a6e'}}
@allure.story("设置手势-登录")
@allure.link("http://yapi.hikcreate.com/project/31/interface/api/10974")
@allure.description("/v1/user/login/gesture/setAndLogin")
@allure.title("{inData[testPoint]}")
# @pytest.mark.flaky(reruns=1) # @pytest.mark.flaky(reruns=1)
# @pytest.mark.parametrize("inData", get_excelData(workBook, '账号信息基本功能', 'loginverifyCodeRegister')) @pytest.mark.parametrize("inData", get_excelData(workBook, '账号信息基本功能', 'gesturesetAndLoginRegister'))
# def test_login_verify_code_register(self, inData, test_pre_message): def test_ges_ture_set_and_login_register(self, inData, test_pre_gesture_login):
# url = f"{BMCConfig().host}{inData['url']}" url = f"{BMCConfig().host}{inData['url']}"
# method = inData['method'] method = inData['method']
# req_data = inData['reqData'] req_data = inData['reqData']
# expectData = inData['expectData'] expectData = inData['expectData']
# headers = inData['headers'] headers = inData['headers']
# casenum = inData['caseNum'] phone = req_data['phone']
# phone = req_data['phone'] casenum = inData['caseNum']
# pre = test_pre_message one_time_token = test_pre_gesture_login['data']['oneTimeToken']
# if not phone: if not phone:
# res = request_main(url=url, headers=headers, method=method, data=req_data, has_token=False) res = request_main(url=url, headers=headers, method=method, data=req_data, has_token=False)
# assert res['code'] == expectData['code'] assert res['code'] == expectData['code']
# else: else:
# resList = self.ms.ExecuQuery(f'SELECT * FROM edl_public.user where phone={phone};') resList = self.ms.ExecuQuery(f'SELECT * FROM edl_public.user where phone={phone};')
# if resList: if resList:
# user_id = resList[0]['id'] user_id = resList[0]['id']
# self.ms.ExecuNonQuery( self.ms.ExecuNonQuery(
# f'delete from edl_public.user where id={user_id};') f'delete from edl_public.user where id={user_id};')
# if casenum == 'loginverifyCodeRegister004' or casenum == 'loginverifyCodeRegister005': if casenum >= 'gesturesetAndLoginRegister004':
# try: req_data['oneTimeToken'] = one_time_token
# verifyCode = int(RedisString(0).get(f'edl:sms_value:{phone}:MOBILE_REGISTER')) res = request_main(url=url, headers=headers, method=method, data=req_data, has_token=False)
# except Exception: allure.attach("{0}".format(res), "用例结果")
# expectData['code'] = 1006 assert res['code'] == expectData['code']
# else:
# req_data['verifyCode'] = verifyCode
# res = request_main(url=url, headers=headers, method=method, data=req_data, has_token=False)
# allure.attach("{0}".format(res), "用例结果")
# assert res['code'] == expectData['code']
# @pytest.fixture()
# def test_pre_gesture_login(self):
# """请求令牌"""
# # 获取图片验证码
# picture_url = f"{BMCConfig().host}/sys/captcha"
# picture_method = 'get'
# picture_req_data = {"bCityCode": "520100", "bizType": "1"}
# picture_headers = None
# res_picture = request_main(url=picture_url, headers=picture_headers, method=picture_method, data=picture_req_data, has_token=False)
# # 获取短信验证码
# pic_msg_url = f"{BMCConfig().host}/v1/user/login/verifyCode/detail"
# pic_msg_method = 'post'
# pic_msg_req_data = {"phone": "15999099999", "bizType": 1, "horPercent": None, "jtId": None, "bCityCode": "520100",
# "bNetTag": "trf_mgt"}
# pic_msg_headers = None
# phone = pic_msg_req_data['phone']
# jtId = res_picture['data']['jtId']
# pic_msg_req_data['jtId'] = jtId
# horPercent = int(RedisString(0).get(f'bmc:captcha:{jtId}'))
# pic_msg_req_data['horPercent'] = horPercent
# resList = self.ms.ExecuQuery(f'SELECT * FROM edl_public.user where phone={phone};')
# if resList:
# user_id = resList[0]['id']
# self.ms.ExecuNonQuery(
# f'delete from edl_public.user where id={user_id};')
# RedisString(0).delete_key(f"edl:sms_total:{phone}")
# RedisString(0).delete_key(f"edl:sms_one_total:{phone}")
# request_main(url=pic_msg_url, headers=pic_msg_headers, method=pic_msg_method, data=pic_msg_req_data, has_token=False)
# # 短信验证
# message_url = f"{BMCConfig().host}/user/login/verifyCode"
# message_method = 'post'
# message_req_data = {"phone":"15999099999","bizType":1,"bCityCode":"520100","bNetTag":"trf_mgt","verifyCode":""}
# message_headers = None
# try:
# verifyCode = int(RedisString(0).get(f'edl:sms_value:{phone}:MOBILE_REGISTER'))
# except Exception as e:
# raise TypeError('验证码发送次数过多,请24小时后再试')
# else:
# message_req_data['verifyCode'] = verifyCode
# res = request_main(url=message_url, headers=message_headers, method=message_method, data=message_req_data, has_token=False)
# return res # {'success': True, 'code': 1000, 'msg': '操作成功', 'errorMsg': '操作成功', 'data': {'oneTimeToken': '357c8d80-e135-41a0-baae-009893f50a6e'}}
#
# @allure.story("设置手势-登录")
# @allure.link("http://yapi.hikcreate.com/project/31/interface/api/10974")
# @allure.description("/v1/user/login/gesture/setAndLogin")
# @allure.title("{inData[testPoint]}")
# # @pytest.mark.flaky(reruns=1)
# @pytest.mark.parametrize("inData", get_excelData(workBook, '账号信息基本功能', 'gesturesetAndLoginRegister'))
# def test_ges_ture_set_and_login_register(self, inData, test_pre_gesture_login):
# url = f"{BMCConfig().host}{inData['url']}"
# method = inData['method']
# req_data = inData['reqData']
# expectData = inData['expectData']
# headers = inData['headers']
# phone = req_data['phone']
# casenum = inData['caseNum']
# one_time_token = test_pre_gesture_login['data']['oneTimeToken']
# if not phone:
# res = request_main(url=url, headers=headers, method=method, data=req_data, has_token=False)
# assert res['code'] == expectData['code']
# else:
# resList = self.ms.ExecuQuery(f'SELECT * FROM edl_public.user where phone={phone};')
# if resList:
# user_id = resList[0]['id']
# self.ms.ExecuNonQuery(
# f'delete from edl_public.user where id={user_id};')
# if casenum >= 'gesturesetAndLoginRegister004':
# req_data['oneTimeToken'] = one_time_token
# res = request_main(url=url, headers=headers, method=method, data=req_data, has_token=False)
# allure.attach("{0}".format(res), "用例结果")
# assert res['code'] == expectData['code']
#
@pytest.fixture() @pytest.fixture()
def test_pre_pwd_login(self): def test_pre_pwd_login(self):
"""请求令牌""" """请求令牌"""
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment