Commit b6faf5d8 by fanxun

注册用例实现

parent 0788fd52
......@@ -93,7 +93,8 @@ if __name__ == '__main__':
# print(str(r)[-7:-1])
# pass
# RedisString(0).delete_key("bmc:c1:dl_img:uid")
mysql = MYSQL(host="10.197.236.190", port=3306, user="root", pwd="123456", db="edl_private")
info = mysql.ExecuQuery("SELECT * FROM db_tbd_base1.project;")
print(info)
# mysql = MYSQL(host="10.197.236.190", port=3306, user="root", pwd="123456", db="edl_private")
# info = mysql.ExecuQuery("SELECT * FROM db_tbd_base1.project;")
# print(info)
r = RedisString(0).get('bmc:captcha:1ad7d0e9-1e01-454c-8500-d7b5b15c90ff')
......@@ -2,10 +2,12 @@
# 时间: 2021/5/13 15:10
# 编码: #coding:utf-8
# 版本: python3.7
import time
import pytest,allure,xlrd,requests,os
import config
from common.db import MYSQL, RedisString
from common.utils.getExcelData import get_excelData
from service.login import BMY
from common.tools import request_main
......@@ -49,10 +51,170 @@ class TestRegister():
"""注册"""
workBook = xlrd.open_workbook(f'{BMCConfig.root_path}/test_case_data/bmc/bmc_base_info_2021513.xlsx')
def setup_class(self):
# def test_mysql_result(self):
"""数据库操作"""
self.ms = MYSQL('10.197.236.190', 3306, 'root', '123456', 'edl_public')
# 获取账号信息,1577800000 这个账号为注册成功账号
# self.resList = self.ms.ExecuQuery('SELECT * FROM edl_public.user where phone=1577800000;')
# self.user_id = resList[0]['id']
# @allure.story("获取用户登录类型")
# @allure.link("http://yapi.hikcreate.com/project/31/interface/api/10745")
# @allure.description("/v1/user/login/type")
# @allure.title("{inData[testPoint]}")
# @pytest.mark.flaky(reruns=2)
# @pytest.mark.parametrize("inData", get_excelData(workBook, '账号信息基本功能', 'logintypeRegister'))
# def test_login_type_register(self, inData):
# url = f"{BMCConfig().host}{inData['url']}"
# method = inData['method']
# req_data = inData['reqData']
# expectData = inData['expectData']
# headers = inData['headers']
# phone = req_data['phone']
# 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 not resList: # 没有注册过
# res = request_main(url=url, headers=headers, method=method, data=req_data, has_token=False)
# assert res['code'] == expectData['code']
# else:
# user_id = self.resList[0]['id']
# self.ms.ExecuNonQuery(
# f'delete from edl_public.user where id={user_id};')
# @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_login_type_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)
# assert res['code'] == expectData['code']
@pytest.fixture()
def test_picture(self):
"""获取图形验证码"""
url = f"{BMCConfig().host}/sys/captcha"
method = 'get'
req_data = {"bCityCode":"520100","bizType":"1"}
headers = None
res = request_main(url=url, headers=headers, method=method, data=req_data, has_token=False)
return res
# 有错误 提示图形验证码超时 -- 需要写个获取图形验证码的套件
@allure.story("图形短信验证码")
@allure.link("http://yapi.hikcreate.com/project/31/interface/api/10943")
@allure.description("/v1/user/login/verifyCode/detail")
@allure.title("{inData[testPoint]}")
@pytest.mark.flaky(reruns=2)
@pytest.mark.parametrize("inData", get_excelData(workBook, '账号信息基本功能', 'verifyCodedetailRegister'))
def test_login_type_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(60)
if not phone:
res = request_main(url=url, headers=headers, method=method, data=req_data, has_token=False)
# 发送次数过多
print(res)
if res['msssage'] == '验证码发送次数过多,请24小时后再试':
expectData['code'] = 1006
assert res['code'] == expectData['code']
else:
resList = self.ms.ExecuQuery(f'SELECT * FROM edl_public.user where phone={phone};')
if not resList:
res = request_main(url=url, headers=headers, method=method, data=req_data, has_token=False)
print(res)
# 发送次数过多
if res['msssage'] == '验证码发送次数过多,请24小时后再试':
expectData['code'] = 1006
assert res['code'] == expectData['code']
else:
user_id = resList[0]['id']
self.ms.ExecuNonQuery(
f'delete from edl_public.user where id={user_id};')
# 有问题 -- 写个套件 获取短信验证码
# @allure.story("短信验证")
# @allure.link("http://yapi.hikcreate.com/project/31/interface/api/10787")
# @allure.description("/user/login/verifyCode")
# @allure.title("{inData[testPoint]}")
# @pytest.mark.parametrize("inData", get_excelData(workBook, '账号信息基本功能', 'loginverifyCodeRegister'))
# def test_login_type_register(self, inData):
# url = f"{BMCConfig().host}{inData['url']}"
# method = inData['method']
# req_data = inData['reqData']
# expectData = inData['expectData']
# headers = inData['headers']
# phone = req_data['phone']
# 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 not resList:
# res = request_main(url=url, headers=headers, method=method, data=req_data, has_token=False)
# assert res['code'] == expectData['code']
# else:
# user_id = resList[0]['id']
# self.ms.ExecuNonQuery(
# f'delete from edl_public.user where id={user_id};')
# @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=2)
# @pytest.mark.parametrize("inData", get_excelData(workBook, '账号信息基本功能', 'gesturesetAndLoginRegister'))
# def test_login_type_register(self, inData):
# url = f"{BMCConfig().host}{inData['url']}"
# method = inData['method']
# req_data = inData['reqData']
# expectData = inData['expectData']
# headers = inData['headers']
# phone = req_data['phone']
# 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 not resList:
# res = request_main(url=url, headers=headers, method=method, data=req_data, has_token=False)
# assert res['code'] == expectData['code']
# else:
# user_id = resList[0]['id']
# self.ms.ExecuNonQuery(
# f'delete from edl_public.user where id={user_id};')
if __name__ == '__main__':
pytest.main(['-s', '-v', 'test_accountinfo.py',
r'--alluredir=D:\项目\接口自动化\InterfaceAutoTest\report', '--clean-alluredir'])
#
os.system('allure serve D:\项目\接口自动化\InterfaceAutoTest\\report')
\ No newline at end of file
# os.system('allure serve D:\项目\接口自动化\InterfaceAutoTest\\report')
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