def httpGet(self, url, method, data, sql): global request headers = { "Host": "47.110.131.231", "Connection": "keep-alive", "Origin": "http://47.110.131.231", "X-TraceId": "b2486a20-a9d1-11e9-a2b4-5fa2b013c14c", "Referer": "http://47.110.131.231/customerService/SystemManagement/Online", } header = { "Host": "47.110.131.231", "Connection": "keep-alive", "Origin": "http://47.110.131.231", "X-TraceId": "b2486a20-a9d1-11e9-a2b4-5fa2b013c14c", "Referer": "http://47.110.131.231/customerService/SystemManagement/Online", } oo = get_login_cookie() pp = get_login_khcookie() headers["Cookie"] = 's_authorization=' + oo["s_authorization"] header["Cookie"] = 'v_authorization=' + pp["v_authorization"] # headers["Content-Type"] = "application/json" logger.info("当前客服headers配置:%s" % headers) logger.info("当前客客户header配置:%s" % header) if method == 'GET': logger.info('现在开始进行get请求') request = requests.get(url, data, headers=headers).json() elif method == 'GET_kh': logger.info('现在开始进行GET_kh请求') if data['1'] == 1: sql_result = getMysqlInfo(Allpath.db_conf_path, "config").get_mysql_info( sql['my_sql'], sql['condition'], sql['code']) url1 = url % str(sql_result[sql['1']]) logger.info('现在开始进行数据库请求获取:{},当前请求地址:{}'.format( sql_result, url1)) request = requests.get(url1, data, headers=header).json() elif data['1'] == 0: # print(header) request = requests.get(url, headers=header).json() else: request = requests.get(url, data, headers=headers).json() elif method == 'POST_kh': logger.info('现在开始进行POST_kh请求') data['from'] = pp["visitor_id"] print(data) # body格式 request = requests.post(url, json=data, headers=header).json() request['code'] = request['data']['message'] elif method == 'POST': logger.info('现在开始进行post请求') # body格式 request = requests.post(url, json=data, headers=headers).json() elif method == 'POST_file': logger.info('现在开始进行post_file请求') path = Allpath.project_path + "/request_file/" + sql['filename'] print(sql['name'], headers, path) files = {sql['name']: (sql['filename'], open(path, 'rb'))} # body格式 request = requests.post(url, data=data, files=files, headers=headers).json() elif method == 'POST1': logger.info('现在开始进行post1请求') # 参数格式 request = requests.post(url, data, headers=headers).json() print(headers) elif method == 'POST2': logger.info('现在开始进行post2请求') # 参数格式 request = requests.post(url, headers).json() elif method == 'POST_word': logger.info('现在开始进行post_word请求') request = {} # 参数格式,返回的是字符串格式 text = requests.post(url, data, headers).text request['code'] = text elif method == 'POST_del': logger.info('现在开始进行post_del请求') sql_result = getMysqlInfo(Allpath.db_conf_path, "config").get_mysql_info( sql['my_sql'], sql['condition'], sql['code']) logger.info('post删除数据库返回:' + str(sql_result)) data['id'] = sql_result[0] # body格式 request = requests.post(url, json=data, headers=headers).json() elif method == 'PUT': # 0:上下线单独处理;1:正常put;2:质检规则关闭处理;3、获取多个字段值json格式;4、获取多个字段值参数格式 logger.info('现在开始进行put请求') headers["Content-Type"] = "application/json" # 2019年7月23日 16:17:38新增cookie不变循环处理方法 if sql['1'] == 0: request1 = requests.put( 'http://47.110.131.231/v1/tenants/_1NTMWLA/staffs/s_819aee8ed8554b9f82e8d6302c8d2411/online', data='{"status":"online"}', headers=headers).json() # print(request1) if 'test' in request1['data']: oo["o_authorization"] = request1['data']['test'] # print(oo) # 新增cookie中o_authorization状态保存 headers["Cookie"] = 's_authorization=' + oo[ "s_authorization"] + ';o_authorization=' + oo[ "o_authorization"] request = requests.put(url, data=json.dumps(data), headers=headers).json() time.sleep(0.3) # 退出 get_logout('http://47.110.131.231/v1/tenants/_1NTMWLA/logout', '', headers) elif sql['1'] == 2: sql_result = getMysqlInfo(Allpath.db_conf_path, "config").get_mysql_info( sql['my_sql'], sql['condition'], sql['code']) for i in range(len(sql_result)): url_d = url + str(sql_result[i]["rule_id"]) request = requests.put(url_d, headers=headers).json() logger.info("规则ID:%s关闭处理成功!" % sql_result[i]["rule_id"]) logger.info(sql['condition'] + "关闭处理成功!") elif sql['1'] == 3: sql_result = getMysqlInfo(Allpath.db_conf_path, "config").get_mysql_info( sql['my_sql'], sql['condition'], sql['code']) logger.info("再分配结果ID获取成功!{}".format(sql_result)) url_d = url.format(sql_result[0], sql_result[3]) print(url_d) request = requests.put(url_d, json=data, headers=headers).json() elif sql['1'] == 4: headers.pop('Content-Type') sql_result = getMysqlInfo(Allpath.db_conf_path, "config").get_mysql_info( sql['my_sql'], sql['condition'], sql['code']) logger.info("再分配结果ID获取成功!{}".format(sql_result)) url_d = url.format(sql_result[0], sql_result[3]) print(url_d) request = requests.put(url_d, data, headers=headers).json() else: # print(data) # .encode("UTF-8")对字符串进行`UTF-8`编码格式编码 # 用dumps转义成json格式 # json.dump()函数的使用,将json信息写进文件 # json.dumps() 编码:把一个Python对象编码转换成Json字符串 # json.load()函数的使用,将读取json信息 # json.loads() 解码:把Json格式字符串解码转换成Python对象 # body格式 request = requests.put(url, data=json.dumps(data), headers=headers).json() elif method == 'DELETE': logger.info('现在开始进行delete请求') # excel的data中指定:0表示正常请求,1取数据库返回第一个值,2指定数据库返回第二个值,3指定删除规则 if '1' in data.keys() and data['1'] == 1: sql_result = getMysqlInfo(Allpath.db_conf_path, "config").get_mysql_info( sql['my_sql'], sql['condition'], sql['code']) logger.info('数据库返回:' + str(sql_result)) logger.info("excel取值获取数据库返回第%s位:" % data['1']) url_del = url + str(sql_result[0]) logger.info("请求URL:%s" % url_del) request = requests.delete(url_del, headers=headers).json() elif '1' in data.keys() and data['1'] == 2: sql_result = getMysqlInfo(Allpath.db_conf_path, "config").get_mysql_info( sql['my_sql'], sql['condition'], sql['code']) logger.info('数据库返回:' + str(sql_result)) logger.info("excel取值获取数据库返回第%s位:" % data['1']) url_del = url + str(sql_result[1]) logger.info("请求URL:%s" % url_del) request = requests.delete(url_del, headers=headers).json() elif '1' in data.keys() and data['1'] == 3: sql_result = getMysqlInfo(Allpath.db_conf_path, "config").get_mysql_info( sql['my_sql'], sql['condition'], sql['code']) for i in range(len(sql_result)): if 'rule_id' in sql_result[i].keys(): url_d = url + str(sql_result[i]["rule_id"]) request = requests.delete(url_d, headers=header).json() logger.info("规则ID:%s删除处理成功!" % sql_result[i]["rule_id"]) elif 'id' in sql_result[i].keys(): url_d = url + str(sql_result[i]["id"]) request = requests.delete(url_d, headers=header).json() logger.info("规则ID:%s删除处理成功!" % sql_result[i]["id"]) logger.info(sql['condition'] + "删除处理成功!") elif '1' in data.keys() and data['1'] == 0: logger.info("客户进行关闭会话请求!") sql_result = getMysqlInfo(Allpath.db_conf_path, "config").get_mysql_info( sql['my_sql'], sql['condition'], sql['code']) logger.info('数据库返回:' + str(sql_result)) url1 = url.format(sql_result[4], pp["visitor_id"]) request = requests.delete(url1, headers=header).json() elif sql['1'] == 0: request = requests.delete(url, data=data, headers=headers).json() else: request = requests.delete(url, headers=headers).json() else: logger.info('请求方法未知!请核对后在尝试!') return request
def httpGet(self, url, method, data, sql): headers = { "Host": "aiapplet.citydo.com.cn", "Connection": "keep-alive", "Origin": "https://aiapplet.citydo.com.cn", "Referer": "https://aiapplet.citydo.com.cn/", "openid": "helloworld" } # headers['Cookie']="SESSION="+oo['SESSION']+';JSESSIONID='+oo['JSESSIONID'] # headers["Content-Type"] = "multipart/form-data" logger.info("当前headers配置:%s" % headers) if method == 'GET': logger.info('现在开始进行get请求') request = requests.get(url, data, headers=headers).json() elif method == 'GET_cube': requests.post( 'https://testdfind.citydo.com.cn/datawindow/os/user/changeRole', { 'windowUserAccount': '*****@*****.**' }, headers=headers).json() logger.info('现在开始进行GET_cube请求') request = requests.get(url, data, headers=headers).json() elif method == 'POST': logger.info('现在开始进行post请求') # body格式 request = requests.post(url, json=data, headers=headers).json() elif method == 'POST_file': logger.info('现在开始进行post_file请求') path = Allpath.project_path + "/request_file/" + sql['filename'] print(sql['name'], headers, path) files = {sql['name']: (sql['filename'], open(path, 'rb'))} request = requests.post(url, data=data, files=files, headers=headers).json() elif method == 'POST1': logger.info('现在开始进行post1请求') # 参数格式 request = requests.post(url, data, headers=headers).json() elif method == 'POST2': logger.info('现在开始进行post2请求') # 参数格式 request = requests.post(url, headers).json() elif method == 'POST3': logger.info('现在开始进行post3请求') # 参数格式 request = requests.post(url, data=json.dumps(data), headers=headers).json() elif method == 'POST_word': logger.info('现在开始进行post_word请求') request = {} # 参数格式,返回的是字符串格式 text = requests.post(url, data, headers).text request['code'] = text elif method == 'POST_del': logger.info('现在开始进行post_del请求') sql_result = getMysqlInfo(Allpath.db_conf_path, 'config').get_mysql_info( sql['my_sql'], sql['condition'], sql['code']) logger.info('post删除数据库返回:' + str(sql_result)) data['id'] = sql_result[0] # body格式 request = requests.post(url, json=data, headers=headers).json() elif method == 'PUT': logger.info('现在开始进行put请求') request = requests.put(url, data=json.dumps(data), headers=headers).json() elif method == 'DELETE': logger.info('现在开始进行delete请求') request = requests.delete(url, headers=headers).json() else: logger.info('请求方法未知!请核对后在尝试!') return request
import unittest import time, shutil import HTMLTestRunner_zgh from public import Unit_test from conf import Allpath from public.get_mysql_info import getMysqlInfo from public.writeExcel import writeExcel from public.readExcel import readexcel from public.smtp import massageMail from public.logger import Log import requests import random gmi = getMysqlInfo(Allpath.db_conf_path, 'config1') logger = Log('auto_cases', Allpath.log_path) #去随机数赋值图片名称 name = str(random.randint(0, 10)) # 2019年7月22日 10:40:51新增执行前清理原始用例结果记录 writeExcel(Allpath.test_data_path, 'Sheet1').Excel_dellog() suite = unittest.TestSuite() # 实例 loader = unittest.TestLoader() # 测试模块 suite.addTest(loader.loadTestsFromModule(Unit_test)) now = time.strftime('%Y-%m-%d_%H_%M_%S') file_path = Allpath.html_path + '/' + now + '.html' with open(file_path, 'wb+') as file: # 实例化测试报告运行