예제 #1
0
 def __init__(self):
     # 建立连接
     self.conn = psycopg2.connect(
         host=myconf.get('postgresql', 'host'),  # 数据库地址
         port=myconf.getint('postgresql', 'port'),  # 端口
         user=myconf.get('postgresql', 'user'),  # 账号
         password=myconf.get('postgresql', 'password'),  # 密码
         database=myconf.get('postgresql', 'database')  # 数据库名
     )
     # 创建一个游标
     self.cur = self.conn.cursor()
예제 #2
0
    def test_PRODCUT(self, case):
        # 第一步:准备用例数据
        url = myconf.get('url', 'url') + case.url
        interface = case.interface
        method = case.method
        # 替换动态化的参数
        if "#sessionId#" in case.data:
            # 将需要格式化的字符串提取出来,替换为格式化的参数
            data = eval(
                case.data.replace('#sessionId#',
                                  myconf.get('user', 'sessionId')))

        # 第二步:读取配置文件,发送请求,将请求内容输出日志到指定目录,获取请求结果
        my_log.info("请求地址:{},请求接口{},请求内容:{}".format(url, interface, data))
        response = self.http.request(method, url=url, data=data)
        res = response.json()
        # 第三步:对比实际和预期结果
        try:
            self.assertEqual(str(case.excepted_code), res['code'])
            if case.check_sql:
                # 将需要格式化的字符串提取出来,替换为格式化的参数
                case.check_sql = case.check_sql.replace(
                    '#distributer_no#', myconf.get('user', 'distributer_no'))
                # 获取当前分销商产品总数
                product_count = self.db.fetchone(case.check_sql)[0]
                print(product_count)
                # 对比实际分销商产品总数和预期
                self.assertEqual(3, product_count)
        except AssertionError as error:
            print('测试用例不通过')
            print('实际响应状态码为:{}'.format(res['code']))
            print('预期响应状态码为:{}'.format(case.excepted_code))
            self.excel.write_data(row=case.case_id + 1,
                                  column=8,
                                  value='failed')
            my_log.info('用例{}执行未通过'.format(case.title))
            my_log.exception(error)
            raise error
        else:
            print('测试用例通过')
            print('实际响应状态码为:{}'.format(res['code']))
            print('预期响应状态码为:{}'.format(case.excepted_code))
            self.excel.write_data(row=case.case_id + 1,
                                  column=8,
                                  value='passed')
            my_log.info('用例{}执行通过'.format(case.title))
예제 #3
0
def data_replace(data):
    '''动态替换用例数据'''
    while re.search(r'#(.+?)#', data):
        res = re.search(r'#(.+?)#', data)
        # 提取要替换的内容
        re_data = res.group()
        # 提取要替换的字段
        key = res.group(1)
        try:
            # 去配置文件中读取字段对应的数据内容
            value = myconf.get('data', key)
        except:
            value = getattr(ConText, key)
        # 进行替换
        data = re.sub(re_data, str(value), data)
        # # 替换
        # data = re.sub(re_data,value,data)
    return data
예제 #4
0
'''
import os
import unittest
from HTMLTestRunnerNew import HTMLTestRunner
from interface.common.constant import CASE_DIR, REPORT_DIR
from interface.common.mylog import my_log
from interface.common.read_config import myconf

# 项目开始时输出日志
my_log.info("------开始执行测试运行程序------")

# 第一步:创建测试套件
suite = unittest.TestSuite()

# 第二步:将用例添加到测试套件
loader = unittest.TestLoader()
suite.addTest(loader.discover(CASE_DIR))
# 第三步:执行用例,生成测试报告
# 从配置文件中读取测试报告的名称,并和路径拼接生成一个指定路径指定名称的测试报告
file_name = myconf.get('report', 'file_name')
report = os.path.join(REPORT_DIR, file_name)
with open(report, 'wb') as new:
    runner = HTMLTestRunner(stream=new,
                            verbosity=2,
                            title='report01',
                            description='接口测试报告',
                            tester='可乐')
    runner.run(suite)

# 用例执行结束输入日志
my_log.info('------用例执行结束------')
예제 #5
0
파일: mylog.py 프로젝트: Amyli0601/python
"""
===============
author:Administrator
time:16:06
E-mail:[email protected]
===============
"""
import logging
import os
from interface.common.constant import LOG_DIR
from interface.common.read_config import myconf

# 读取配置文件中log区域的配置内容
log_level = myconf.get('log','log_level')
fh_level = myconf.get('log','fh_level')
sh_level = myconf.get('log','sh_level')
filename = myconf.get('log','filename')

# 拼接日志文件路径
file_path = os.path.join(LOG_DIR,filename)

class MyLog(object):
    def __new__(cls, *args, **kwargs):
        '''创建对象'''
        # 第一步:创建日志收集器,根据配置文件获取收集器设置的收集日志的等级
        my_log = logging.getLogger('my_log')
        my_log.setLevel(log_level)
        # 第二步:创建日志输出渠道,根据配置文件获取渠道设置的收集日志的等级,输出到控制台
        sh = logging.StreamHandler()
        sh.setLevel(sh_level)
        fh = logging.FileHandler(file_path, 'a', encoding='utf8')