示例#1
0
    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
示例#2
0
    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
示例#3
0
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:
    # 实例化测试报告运行