def create_new_user(regname, pwd="Gl123456"): """ 创建一个用户 :param pwd: :param regname: :return: """ handle_mysql = HandleMysql() send_request = HandleRequest() url = do_config("api", "url") + "/member/register" sql = "SELECT Id FROM member WHERE MobilePhone=%s;" while True: mobilephone = handle_mysql.create_not_existed_tel() data = {"mobilephone": mobilephone, "pwd": pwd, "regname": regname} send_request(method="post", url=url, data=data) result = handle_mysql(sql=sql, args=(mobilephone,)) if result: user_id = result["Id"] break user_dict = { regname: { "Id": user_id, "regname": regname, "mobilephone": mobilephone, "pwd": pwd } } handle_mysql.close() send_request.close() return user_dict
def generate_phone(cls, reg_name, pwd='12345678', reg_type=1): hr = HandleRequest() hm = HandleMysql() phone = hm.get_no_exist_phone() header = hy.read_yaml('request', 'header') hr.common_head(header) data = { "mobile_phone": phone, "pwd": pwd, 'type': reg_type, 'reg_name': reg_name } value_result = hr.send(url=hy.read_yaml('register', 'url'), data=data) if value_result.json()['code'] == 0: result_phone = value_result.json()['data']['mobile_phone'] user_id = value_result.json()['data']['id'] person_result = { reg_name: { "mobile_phone": result_phone, 'pwd': pwd, "type": reg_type, "id": user_id, "reg_name": reg_name } } hr.close() hm.close() return person_result
class RegisterAccount: sql = "SELECT Id,Pwd,MobilePhone FROM member WHERE MobilePhone = %s" data = '{"mobilephone":"${not_existed_tel}","pwd":"123456","regname":"jason_loan"}' url = 'http://tj.lemonban.com/futureloan/mvc/api/member/register' def __init__(self): self.handle_mysql = HandleMysql() self.do_config = HandleConfig(CONFIGS_FILE_TESTCASE2) def register(self): not_existed_mobile = self.handle_mysql.create_not_existed_mobile() new_data = re.sub(r'\$\{not_existed_tel\}', not_existed_mobile, self.data) do_http_requests.to_request('post', url=self.url, data=new_data) sql_result = self.handle_mysql.run_mysql(self.sql, args=(not_existed_mobile, )) return sql_result def close(self): self.handle_mysql.close() def write_data(self): content = self.register() datas = {"account": content} self.do_config.write_config(datas, CONFIGS_FILE_TESTCASE2)
def get_phone_nums(cls, username, password='******', type=1): hm = HandleMysql() hr = HandleRequests() url = hy.read_yaml('request', 'base_url') + hy.read_yaml( 'request', 'register_url') phone = hm.no_exsit_phone_mysql() hr.common_heads({ hy.read_yaml('request', 'request_head'): hy.read_yaml('request', 'request_value') }) datas = { "mobile_phone": phone, "pwd": password, "type": type, "reg_name": username } res = hr.send(url=url, data=datas) if res.json()['code'] == 0: id = res.json()['data']['id'] phone_data = { username: { "mobile_phone": phone, "pwd": password, "type": type, "id": id, "reg_name": username } } hm.close() hr.close() return phone_data
def existed_tel_replace(cls, data): handle_mysql = HandleMysql() if re.search(cls.existed_tel_parttern, data): exist_tel = handle_mysql.get_existed_mobile() data = re.sub(cls.existed_tel_parttern, exist_tel, data) handle_mysql.close() return data
def get_phone(cls, username, password='******', type=1): hr = HandleRequest() hm = HandleMysql() base_url = hy.read_yaml('api', 'load') register_url = hy.read_yaml('api', 'register') all_url = ''.join((base_url, register_url)) while True: phone = hm.get_non_existent() data = { "mobile_phone": phone, "pwd": password, "type": type, "reg_name": username } hr.common_head(hy.read_yaml('api', 'header')) result = hr.send(url=all_url, data=data) if result.json()['code'] == 0 and result.json()['msg'] == 'OK': break user_id = hm.get_mysql_result(sql=hy.read_yaml('mysql', 'user_id'), args=phone) result_data = { username: { "mobilephone": phone, "pwd": password, "user_id": user_id[0]['id'], "reg_name": username } } hr.close() hm.close() return result_data
def to_param(cls, data): # 不存在的手机号替换 if re.search(cls.not_existed_tel_pattern, data): do_mysql = HandleMysql() data = re.sub(cls.not_existed_tel_pattern, do_mysql.create_not_existed_mobile(), data) do_mysql.close() # 管理员手机号替换 if re.search(cls.admin_user_tel_pattern, data): # do_user_account = HandleYaml(USER_ACCOUNTS_FILE_PATH) invest_user_tel = cls.do_user_account.read('admin', 'mobile_phone') data = re.sub(cls.admin_user_tel_pattern, invest_user_tel, data) # 投资人密码替换 if re.search(cls.admin_user_pwd_pattern, data): invest_user_pwd = cls.do_user_account.read('invest', 'pwd') data = re.sub(cls.admin_user_pwd_pattern, invest_user_pwd, data) #替换companyId if re.search(cls.admin_companyId_pattern, data): # invest_companyId = cls.do_user_account.read('invest', 'companyId') # data = re.sub(cls.invest_companyId_pattern, invest_companyId, data) invest_companyId = getattr(cls, 'companyId') data = re.sub(cls.admin_companyId_pattern, str(invest_companyId), data) return data
def create_new_user(regname, pwd='123456'): handle_mysql = HandleMysql() send_request = HttpRequests() do_config = HandleConfig(CONFIGS_FILE_TESTCASE1) url = do_config.get_value('requests', 'url_head') + '/member/register' print(url) sql = "select Id from member where MobilePhone = %s;" while True: mobilephone = handle_mysql.create_not_existed_mobile() print(mobilephone) print(pwd) print(regname) data = {"mobilephone": mobilephone, "pwd": pwd, "regname": regname} #new_data = json.dumps(data) res = send_request.to_request(method="post", url=url, data=data) print(res.text) result = handle_mysql.run_mysql(sql, (mobilephone, )) print('ddddddd{}'.format(result)) #result为空,说明注册没成功,则执行for循环下一次,直到成功 if result: user_id = result['Id'] break user_dict = { regname: { "Id": user_id, "regname": regname, "mobilephone": mobilephone, "pwd": pwd } } return user_dict handle_mysql.close()
def create_new_user(regname, pwd='123456'): ''' 新建用户的封装类 ''' do_config = HandleConfig(CONFIG_REQUEST) do_request = HandleRequest() do_mysql = HandleMysql() register_url = do_config.get_value('url', 'register_url') sql = "SELECT Id FROM member WHERE MobilePhone = %s" while True: mobile = do_mysql.create_not_existed_mobile() data = {"regname": regname, "mobilephone": mobile, "pwd": pwd} do_request.send_request(url=register_url, data=data, method='post') result = do_mysql.do_execute(sql, args=(mobile, )) if result: user_id = result['Id'] break user_dict = { regname: { "user_id": user_id, "mobile": mobile, "pwd": pwd, "regname": regname } } do_mysql.close() do_request.close_request() return user_dict
def set_up(): hr = HandleRequest() hm = HandleMysql() hr.common_head(hy.read_yaml('api', 'header')) yield hr, hm, hy, hl hr.close() hm.close()
def get_phone(cls, user, password="******", type_num=1): hr = HandleRequest() hm = HandleMysql() hr.common_head({'X-Lemonban-Media-Type': 'lemonban.v2'}) base_url = hy.read_yaml('api', 'load') register_url = hy.read_yaml('api', 'register') all_url = ''.join((base_url, register_url)) while True: # 获取在数据库中不存在的电话号码 phone = hm.get_right_phone() data = { "mobile_phone": phone, "pwd": password, "type": type_num, "reg_name": user } result = hr.send(url=all_url, data=data) if result.json()['code'] == 0 and result.json()["msg"] == "OK": break my_result = hm.get_mysql_result(hy.read_yaml('mysql', 'user_id'), args=phone) user_id = my_result[0]['id'] result_data = { user: { "user_phone": phone, "pwd": password, "user_id": user_id, "reg_name": user } } hm.close() hr.close() return result_data
def to_param(cls, data): # 未注册手机号的参数化 if re.search(cls.not_existed_tel_pattern, data): do_mysql = HandleMysql() data = re.sub(cls.not_existed_tel_pattern, do_mysql.create_not_existed_mobile(), data) do_mysql.close() # 不存在的用户id替换 if re.search(cls.not_existed_id_pattern, data): do_mysql = HandleMysql() sql = "SELECT id FROM member ORDER BY id DESC limit 0, 1;" not_existed_id = do_mysql.run(sql).get('id') + 1 # 获取最 大的id加1 data = re.sub(cls.not_existed_id_pattern, str(not_existed_id), data) do_mysql.close() # 注册用户手机号的参数化 if re.search(cls.invest_user_tel_pattern, data): invest_user_tel = cls.do_user_account.read('invest', 'mobile_phone') data = re.sub(cls.invest_user_tel_pattern, invest_user_tel, data) # 注册用户密码的参数化 if re.search(cls.invest_user_pwd_pattern, data): invest_user_pwd = cls.do_user_account.read('invest', 'pwd') data = re.sub(cls.invest_user_tel_pattern, invest_user_pwd, data) # 参数化投资人的id if re.search(cls.invest_user_id_pattern, data): invest_user_id = cls.do_user_account.read('invest', 'id') data = re.sub(cls.invest_user_id_pattern, str(invest_user_id), data) # loan_id 替换 if re.search(cls.loan_id_pattern, data): loan_id = getattr(cls, 'loan_id') data = re.sub(cls.loan_id_pattern, str(loan_id), data) return data
def create_new_user(regname, pwd='123456'): '''创建一个账户''' handle_mysql = HandleMysql() send_request = HttpRequest() url = do_config.get_value('api', 'prefix_url') + '/member/register' sql = 'select id from member where MobilePhone=%s;' while True: mobilephone = handle_mysql.create_not_existed_mobile() data = {'mobilephone':mobilephone, 'pwd':pwd, 'regname':regname} send_request.to_request(method='post', url=url, data=data) result = handle_mysql.to_run(sql=sql, args=(mobilephone,)) if result: user_id = result['id'] break user_dict = { regname: { 'Id': user_id, 'regname': regname, 'mobilephone': mobilephone, 'pwd': pwd } } handle_mysql.close() send_request.close() return user_dict
def set_up(): hr = HandleRequests() hm = HandleMysql() hl = HandleYaml(PHONE_PATH) hr.common_heads({hy.read_yaml('request', 'request_head'): hy.read_yaml('request', 'request_value')}) yield hr, hm, hl hr.close() hm.close()
def set_up(): hr = HandleRequest() hm = HandleMysql() hl = HandleYaml(PERSONPHONE_PATH) hr.common_head(hy.read_yaml('request', 'header')) yield hr, hm, hl hr.close() hm.close()
def not_existed_tel_repalce(cls, data): """ data 是待替换的原始字符串 用if先判断,可以节省资源 """ if re.search(cls.not_existed_tel_pattern, data): handle_mysql = HandleMysql() not_existed_tel = handle_mysql.create_not_existed_mobile() data = re.sub(cls.not_existed_tel_pattern, not_existed_tel, data) return data handle_mysql.close()
def test_product(self, case): # 1. 参数化 new_data = Parameterize.to_param(case.data) # 2. 拼接完整的url if case.case_id == 4: mysql = HandleMysql() ss = mysql.run(do_yaml.read('mysql', 'select_product_id')) new_url = do_yaml.read('api', 'prefix') + case.url + ss['id'] mysql.close()
def register_not_existed_replace(cls, data): ''' 不存在手机号进行参数化 ''' if re.search(cls.register__unregistered_mobile, data): do_mysql = HandleMysql() data = re.sub(cls.register__unregistered_mobile, do_mysql.create_not_existed_mobile(), data) do_mysql.close() return data
def not_existed_tel_replace(cls, data): ''' :param data:待替换的原始字符串 :return: ''' handle_mysql = HandleMysql() if re.search(cls.not_existed_tel_parttern, data): not_exist_tel = handle_mysql.create_not_existed_mobile() data = re.sub(cls.not_existed_tel_parttern, not_exist_tel, data) handle_mysql.close() return data
def create_new_user(reg_name, pwd='12345678', type=1): """ 创建一个新用户 :param reg_name: :param pwd: :param type: :return: """ # 创建session会话对象,用来发起请求 do_request = HandleRequest() # 创建mysql对象 do_mysql = HandleMysql() # 添加公共请求头 do_request.add_headers(do_yaml.read_yaml('api', 'version')) # 注册请求的url register_url = do_yaml.read_yaml('api', 'prefix') + '/member/register' while True: # 随机生成一个未注册的手机号 mobile_phone = do_mysql.create_not_exsited_mobile() # 创建一个请求体参数 data = { 'mobile_phone': mobile_phone, 'pwd': pwd, 'type': type, 'reg_name': reg_name } # 调用注册接口,发起请求 do_request.send(register_url, data=data) # 查询数据库用户ID的sql,同时进行了数据校验 sql = do_yaml.read_yaml('mysql', 'select_user_id_sql') # 查询数据库,获取用户ID result = do_mysql.run(sql, args=[mobile_phone], is_more=False) # 判断是否存在,如果result为None,则用户不存在,if语句为真,用户创建成功,跳出循环 if result: user_id = result['id'] break # 构建用户信息为嵌套字典的字典 user_info = { reg_name: { 'user_id': user_id, 'mobile_phone': mobile_phone, 'pwd': pwd, 'reg_name': reg_name} } # 关闭mysql对象 do_mysql.close() # 关闭session会话对象 do_request.close() return user_info
def not_existed_tel_replace(cls, data): """ 替换参数化的未注册手机号 :param data: :return: """ do_mysql = HandleMysql() new_mobile = do_mysql.create_not_existed_tel() if re.search(cls.not_existed_tel_pattern, data): data = re.sub(cls.not_existed_tel_pattern, new_mobile, data) do_mysql.close() # 关闭数据库连接 return data
def create_new_user(reg_name, pwd="aaa123", user_type=1): """ 创建一个用户 :param reg_name: 用户名 :param pwd: 密码 :param user_type: 用户类型 :return: 存储一个用户信息, 嵌套字典的字典(以用户名为key, 以用户信息所在字典为value) """ # 建立连接 do_mysql = HandleMysql() do_request = HandleRequest() # 添加公共请求头 do_request.add_headers(do_yaml.read('api', 'version')) url = do_yaml.read('api', 'prefix') + '/member/register' sql = do_yaml.read('mysql', 'select_userid_sql') while True: mobile_phone = do_mysql.create_not_existed_mobile() data = { "mobile_phone": mobile_phone, "pwd": pwd, "reg_name": reg_name, "type": user_type } # 先注册接口发起请求 do_request.send(url, data=data) # 查询数据库, 获取用户id result = do_mysql.run(sql=sql, args=(mobile_phone, )) if result: user_id = result["id"] break # 构造用户信息字典 user_dict = { reg_name: { "id": user_id, "reg_name": reg_name, "mobile_phone": mobile_phone, "pwd": pwd } } # 关闭连接 do_mysql.close() do_request.close() return user_dict
def replace_phone(self): # 创建正则表达式,一定要加r,有特殊字符需要在字符串前方加\ # match方法,传入正则表达式,待查询字符串 # match只能从头开始匹配,匹配不到返回None # 匹配上后会返回match对象,用group获取结果 try: # 替换生成的手机号 do_mysql = HandleMysql() real_existed_phone = do_mysql.create_not_existed_mobile() data_str = re.sub(r"{not_existed_phone}", real_existed_phone, self.one_str) do_mysql.close() return data_str except AttributeError as e: data_str = self.one_str return data_str
def user_init(): # 获取请求头 headers = do_yaml.read_yaml('api', 'version') # 创建请求对象 do_request = HandleRequests() # 添加公共请求头 do_request.add_headers(headers) # url url = 'http://api.lemonban.com/futureloan/member/register' # 用户数据 user_datas = [{ 'mobile_phone': '', 'pwd': '12345678', 'type': 0, 'reg_name': '管理员' }, { 'mobile_phone': '', 'pwd': '12345678', 'type': 1, 'reg_name': '借款人' }, { 'mobile_phone': '', 'pwd': '12345678', 'type': 1, 'reg_name': '投资人' }] write_yaml = HandleYaml(USER_FILE_DIR) # 连接数据库 do_mysql = HandleMysql() user_info = {} # 生成手机号并注册 for user in user_datas: user['mobile_phone'] = do_mysql.create_not_existed_mobile() # 请求注册接口,返回数据转换成字典并存入字典 res = do_request.send(url, data=user).json() # 获取用户id、密码等信息(区域名为昵称,选项名为data里的字段名以及密码) user_info['{}'.format(user['reg_name'])] = res['data'] user_info['{}'.format(user['reg_name'])]['pwd'] = user['pwd'] # 写入用户文件 write_yaml.write_yaml(USER_FILE_DIR, user_info) # 断开数据库 do_mysql.close() # 断开请求 do_request.close()
def create_new_user(reg_name, pwd="12345678", user_type=1): ''' 创建用户 reg_name:用户昵称 pwd:密码 user_type:用户类型 返回一个用户信息,嵌套字典的字典,用户昵称为key,用户信息为value ''' # 建立连接 后面要关闭连接 do_mysql = HandleMysql() do_request = HandleRequest() # 添加公共请求头 do_request.add_headers(do_yaml.read('api', 'version')) url = do_yaml.read('api', 'prefix') + '/member/register' sql = do_yaml.read( 'api', 'select_user_id') # 虽然响应报文中会返回用户ID,但是从数据库中取出,进一步数据校验了注册接口 while True: # 因为存在数据库中找不到手机号的可能,所以直接死循环创建一个未注册的手机号确保万无一失 mobile_phone = do_mysql.create_not_existed_mobile() data = { "mobile_phone": mobile_phone, "pwd": pwd, "reg_name": reg_name, "type": user_type } # 向注册接口发起请求 do_request.send(url, data=data) # 查询数据库,获取用户id result = do_mysql.run(sql=sql, args=(mobile_phone, )) if result: # 如果查询结果不为空,则获取id user_id = result['id'] break # 构造用户信息字典 user_dict = { reg_name: { "id": user_id, "mobile_phone": mobile_phone, "pwd": pwd, "reg_name": reg_name, } } # 关闭连接 do_request.close() do_mysql.close() return user_dict
def not_existed_replace(cls, data): do_mysql = HandleMysql() # 不存在手机号的参数化 if cls.not_existed_tel_pattern in data: # 使用成员运算 data = re.sub(cls.not_existed_tel_pattern, do_mysql.create_not_existed_mobile(), data) # 不存在的用户id替换 if re.search(cls.not_existed_id_pattern, data): sql = "SELECT id FROM member ORDER BY id DESC limit 0, 1;" not_existed_id = do_mysql.run(sql).get('id') + 1 # 获取最 大的id加1 data = re.sub(cls.not_existed_id_pattern, str(not_existed_id), data) # loan_id 替换 if re.search(cls.loan_id_pattern, data): loan_id = getattr(cls, 'loan_id') data = re.sub(cls.loan_id_pattern, str(loan_id), data) do_mysql.close() return data
def user_init(cls): # 获取请求头 headers = {"X-Lemonban-Media-Type": "lemonban.v2"} # 创建请求对象 do_request = HandleRequest() # 添加请求头 do_request.add_headers(headers) # url url = 'http://api.lemonban.com/futureloan/member/register' # 创建初始三个用户,如果已经创建过则不用再创 user = [{ 'mobile_phone': '', 'pwd': '12345678', 'type': 0, 'reg_name': '管理员' }, { 'mobile_phone': '', 'pwd': '12345678', 'type': 1, 'reg_name': '借款人' }, { 'mobile_phone': '', 'pwd': '12345678', 'type': 1, 'reg_name': '投资人' }] do_yaml = HandleYaml(USER_ACCOUNTS_FILE_DIR) number = HandleMysql() new_user = {} for i in user: i["mobile_phone"] = number.create_not_existed_mobile() # 发起请求 res = do_request.send(url=url, data=i).json() # 获取用户id new_user['{}'.format(i['reg_name'])] = res['data'] new_user['{}'.format(i['reg_name'])]['pwd'] = i['pwd'] # 写入配置文件 do_yaml.write_yaml(USER_ACCOUNTS_FILE_DIR, new_user) # 关闭请求 do_request.close() # 关闭数据库连接 number.close()
def get_data(cls, data): hl = HandleYaml(PERSONPHONE_PATH) if re.search("{no_exist_phone}", data): hm = HandleMysql() result_value = re.sub("{no_exist_phone}", hm.get_no_exist_phone(), data) hm.close() return result_value if re.search("{invest_phone}", data): result_value = re.sub("{invest_phone}", hl.read_yaml('investor', 'mobile_phone'), data) return result_value if re.search("{user_id_re}", data): result_value = re.sub("{user_id_re}", str(hl.read_yaml('investor', 'id')), data) return result_value if re.search('{member_id_re}', data): result_value = re.sub("{member_id_re}", str(hl.read_yaml('browser', 'id')), data) return result_value if re.search("{borrow_phone}", data): result_value = re.sub("{borrow_phone}", hl.read_yaml('browser', 'mobile_phone'), data) return result_value if re.search("{admin_phone}", data): result_value = re.sub("{admin_phone}", hl.read_yaml('admin', 'mobile_phone'), data) return result_value if re.search("{load_id}", data): result_value = re.sub("{load_id}", str(getattr(cls, 'item_id')), data) return result_value if re.search(r"{loan_id_re}", data): loan_id_str = str(getattr(HandleRe, 'verify_loan_id')) my_value = re.sub('{loan_id_re}', loan_id_str, data) result_value = re.sub(r"{user_id}", str(hl.read_yaml('investor', 'id')), my_value) return result_value return data
def create_user(reg_name, password=12345678, type=1): """ 创建用户并将用户信息,添加至全局数据池中 :param reg_name: 用户昵称 :param password: 用户密码,默认为12345678 :param type: 用户类型,默认为1,普通用户 :return: """ do_request = HandleRequest() do_mysql = HandleMysql() # 获取未注册手机号 mobile_phone = do_mysql.create_not_existed_mobile() # 构造请求参数 param = { "mobile_phone": mobile_phone, "pwd": password, "reg_name": reg_name, "type": type } # 构造请求url路径 url = "http://api.lemonban.com/futureloan/member/register" # 获取api头信息 do_request.add_headers(do_yaml.get_data("api", "api_version")) # 进行注册 res = do_request.send("POST", url, json=param) # sql = do_yaml.get_data("mysql", "select_user_sql") # do_mysql.get_values(sql, ) # 从响应报文中获取用户id user_id = res.json()["data"]["id"] # 关闭相关连接 do_request.close() do_mysql.close() # 将用户信息添加至全局数据池中 setattr(GlobalData, "${" + reg_name + "_user_tel}", mobile_phone) setattr(GlobalData, "${" + reg_name + "_user_pwd}", password) setattr(GlobalData, "${" + reg_name + "_user_id}", user_id)
def create_new_user(regname, pwd="123456"): """ 生成一个用户 :param regname: :param pwd: :return: """ handle_mysql = HandleMysql() handle_request = HandleRequest() url = cf.get_value("api", "prefix_url") + "/member/register" sql = "select Id from member where mobilephone=%s;" while True: mobile = handle_mysql.get_not_exists_mobile() data = {"mobilephone": mobile, "pwd": pwd, "regname": regname} handle_request.send_request("post", url, data) ret = handle_mysql.select(sql, args=(mobile, )) if ret: user_id = ret["Id"] break user_dict = { regname: { "Id": user_id, "regname": regname, "mobilephone": mobile, "pwd": pwd } } handle_mysql.close() handle_request.close() return user_dict