Esempio n. 1
0
    def test_recharge(self, case):
        # 准备用例数据
        url = conf.get('env', 'url') + case['url']
        method = case['method']
        expected = eval(case['expected'])
        if '#member_id#' in case['data']:
            case['data'] = case['data'].replace('#member_id#',
                                                str(self.member_id))
        data = eval(case['data'])
        headers = eval(conf.get('env', 'headers'))
        headers['Authorization'] = self.token_data
        row = case['case_id'] + 1

        # 发送请求
        response = self.http.send(url=url,
                                  method=method,
                                  json=data,
                                  headers=headers)
        res = response.json()

        #断言
        try:
            self.assertEqual(expected['code'], res['code'])
            self.assertEqual(expected['msg'], res['msg'])
        except AssertionError as e:
            self.excel.write(row=row, column=8, value='未通过')
            mylog.info('用例:{}---->执行未通过'.format(case['title']))
            print('预期结果:{}'.format(expected))
            print('实际结果:{}'.format(res))
            raise e
        else:
            self.excel.write(row=row, column=8, value='通过')
            mylog.info('用例:{}---->执行通过'.format(case['title']))
Esempio n. 2
0
    def setUp(self):
        # ---------每个审核的用例执行之前都加一个项目,将项目id保存起来----------
        # 获取url
        url = conf.get('env', 'url') + '/loan/add'
        data = {
            "member_id": getattr(TestData, "member_id"),
            "title": "借钱实现财富自由",
            "amount": 2000,
            "loan_rate": 12.0,
            "loan_term": 3,
            "loan_date_type": 1,
            "bidding_days": 5
        }

        headers = eval(conf.get('env', 'headers'))
        headers['Authorization'] = getattr(TestData, 'token_data')

        response = self.http.send(url=url,
                                  method='post',
                                  json=data,
                                  headers=headers)
        result = response.json()
        # 提取 loan_id
        loan_id = jsonpath.jsonpath(result, '$..id')[0]
        setattr(TestData, 'loan_id', str(loan_id))
Esempio n. 3
0
 def test_login(self, case):
     # 准备测试数据
     url = conf.get('env', 'url') + case['url']
     expected = eval(case['expected'])
     data = eval(case['data'])
     row = case['case_id'] + 1
     method = case['method']
     headers = eval(conf.get('env', 'headers'))
     # 发送请求
     response = self.http.send(url=url,
                               method=method,
                               json=data,
                               headers=headers)
     res = response.json()
     # 断言
     try:
         self.assertEqual(expected['code'], res['code'])
         self.assertEqual(expected['msg'], res['msg'])
     except AssertionError as e:
         self.excel.write(row=row, column=8, value='未通过')
         mylog.info('用例:{}---->执行未通过'.format(case['title']))
         print('预期结果:{}'.format(expected))
         print('实际结果:{}'.format(res))
         raise e
     else:
         self.excel.write(row=row, column=8, value='通过')
         mylog.info('用例:{}---->执行通过'.format(case['title']))
Esempio n. 4
0
 def setUpClass(cls):
     # -----------执行用例之前先进行登录-->
     # 登录地址
     url = conf.get('env', 'url') + '/member/login'
     # 登录参数
     data = {
         'mobile_phone': conf.get('test_data', 'admin_phone'),
         'pwd': conf.get('test_data', 'admin_pwd'),
     }
     # 登录headers
     headers = eval(conf.get('env', 'headers'))
     # 发送请求
     response = cls.http.send(url=url,
                              method='post',
                              json=data,
                              headers=headers)
     res = response.json()
     # 提取member_id
     id = jsonpath.jsonpath(res, '$..id')[0]
     setattr(TestData, 'member_id', str(id))
     # 提取token_type
     token_type = jsonpath.jsonpath(res, '$..token_type')[0]
     # 提取token
     token = jsonpath.jsonpath(res, '$..token')[0]
     token_data = token_type + ' ' + token
     setattr(TestData, 'token_data', token_data)
Esempio n. 5
0
    def test_main_stream(self, case):
        # 准备数据
        # 拼接url
        url = conf.get('env', 'url') + case['url']
        # 对url中的参数进行替换
        url = handle_data(url)
        # 提取method
        method = case['method']
        if case['title'] == '管理员注册':
            admin_phone = self.random_phone()
            setattr(TestData, 'admin_phone', admin_phone)
        if case['title'] == '用户注册':
            phone = self.random_phone()
            setattr(TestData, 'phone', phone)
        case['data'] = handle_data(case['data'])
        data = eval(case['data'])
        # 提取expected
        expected = eval(case['expected'])
        # 提取 row
        row = case['case_id'] + 1

        # 提取headers
        headers = eval(conf.get('env', 'headers'))
        if case['interface'] != 'register' and case['interface'] != 'login':
            headers['Authorization'] = getattr(TestData, 'token_data')

        # 发送请求
        response = self.http.send(url=url,
                                  method=method,
                                  json=data,
                                  params=data,
                                  headers=headers)
        res = response.json()

        if case['interface'] == 'login':
            member_id = jsonpath.jsonpath(res, '$..id')[0]
            token_type = jsonpath.jsonpath(res, '$..token_type')[0]
            token = jsonpath.jsonpath(res, '$..token')[0]
            token_data = token_type + ' ' + token
            setattr(TestData, 'member_id', str(member_id))
            setattr(TestData, 'token_data', token_data)
        elif case['interface'] == 'add':
            loan_id = jsonpath.jsonpath(res, '$..id')[0]
            setattr(TestData, 'loan_id', str(loan_id))

        # 断言
        try:
            self.assertEqual(expected['code'], res['code'])
            self.assertEqual(expected['msg'], res['msg'])
        except AssertionError as e:
            self.excel.write(row=row, column=8, value='未通过')
            mylog.info('用例:{}---->执行未通过'.format(case['title']))
            print('预期结果:{}'.format(expected))
            print('实际结果:{}'.format(res))
            raise e

        else:
            self.excel.write(row=row, column=8, value='通过')
            mylog.info('用例:{}---->执行通过'.format(case['title']))
Esempio n. 6
0
 def __init__(self):
     # 新建连接
     self.con = pymysql.connect(host=conf.get('mysql', 'host'),
                                user=conf.get('mysql', 'user'),
                                password=conf.get('mysql', 'password'),
                                port=conf.getint('mysql', 'port'),
                                charset='utf8')
     #新建游标
     self.cur = self.con.cursor()
Esempio n. 7
0
    def test_invest(self, case):
        # 准备数据
        # 拼接url
        url = conf.get('env', 'url') + case['url']
        # 提取method
        method = case['method']
        # 提取data
        case['data'] = handle_data(case['data'])
        data = eval(case['data'])
        # 提取expected
        expected = eval(case['expected'])
        # 提取headers
        headers = eval(conf.get('env', 'headers'))
        if case['interface'] != 'login':
            headers['Authorization'] = getattr(TestData, 'token_data')

        # 提取row
        row = case['case_id'] + 1

        # 发送请求
        response = self.http.send(url=url,
                                  method=method,
                                  json=data,
                                  headers=headers)
        res = response.json()

        if case['interface'] == 'login':
            # 提取member_id
            id = jsonpath.jsonpath(res, '$..id')[0]
            setattr(TestData, 'member_id', str(id))
            # 提取token_type
            token_type = jsonpath.jsonpath(res, '$..token_type')[0]
            # 提取token
            token = jsonpath.jsonpath(res, '$..token')[0]
            # 拼接token_data
            token_data = token_type + ' ' + token
            setattr(TestData, 'token_data', token_data)
        elif case['interface'] == 'add':
            # 提取loan_id
            loan_id = jsonpath.jsonpath(res, '$..id')[0]
            setattr(TestData, 'loan_id', str(loan_id))

        # 断言
        try:
            self.assertEqual(expected['code'], res['code'])
            self.assertEqual(expected['msg'], res['msg'])
        except AssertionError as e:
            self.excel.write(row=row, column=8, value='未通过')
            mylog.info('用例:{}---->执行未通过'.format(case['title']))
            print('预期结果:{}'.format(expected))
            print('实际结果:{}'.format(res))
            raise e
        else:
            self.excel.write(row=row, column=8, value='通过')
            mylog.info('用例:{}---->执行已通过'.format(case['title']))
Esempio n. 8
0
    def test_withdraw(self, case):
        # 准备测试数据
        url = conf.get('env', 'url') + case['url']
        method = case['method']
        expected = eval(case['expected'])
        if '#member_id#' in case['data']:
            case['data'] = case['data'].replace('#member_id#',
                                                str(self.member_id))
        if '#phone#' in case['data']:
            case['data'] = case['data'].replace('#phone#', self.phone)
        if '#pwd#' in case['data']:
            case['data'] = case['data'].replace('#pwd#', self.pwd)
        data = eval(case['data'])
        row = case['case_id'] + 1
        headers = eval(conf.get('env', 'headers'))
        if case['interface'] != 'login':
            headers['Authorization'] = self.token_data
        if case['check_sql']:
            sql = case['check_sql'].format(
                conf.get('test_data', 'mobile_phone'))
            before_amount = self.db.get_one(sql)[0]

        # 发送请求
        response = self.http.send(url=url,
                                  method=method,
                                  json=data,
                                  headers=headers)
        result = response.json()

        if case['interface'] == 'login':
            TestWithdraw.member_id = jsonpath.jsonpath(result, '$..id')[0]
            token = jsonpath.jsonpath(result, '$..token')[0]
            token_type = jsonpath.jsonpath(result, '$..token_type')[0]
            TestWithdraw.token_data = token_type + ' ' + token

        # 断言
        try:
            self.assertEqual(expected['code'], result['code'])
            self.assertEqual(expected['msg'], result['msg'])
            if case['check_sql']:
                sql = case['check_sql'].format(
                    conf.get('test_data', 'mobile_phone'))
                after_amount = self.db.get_one(sql)[0]
                amount = decimal.Decimal(str(data['amount']))
                self.assertEqual(before_amount - after_amount, amount)
        except AssertionError as e:
            self.excel.write(row=row, column=8, value='未通过')
            mylog.info('用例:{}---->执行未通过'.format(case['title']))
            print('预期结果:{}'.format(expected))
            print('实际结果:{}'.format(result))
            raise e
        else:
            self.excel.write(row=row, column=8, value='通过')
            mylog.info('用例:{}---->执行通过'.format(case['title']))
Esempio n. 9
0
def send_email(file_path):

    # 1.连接smtp服务器
    smtp = smtplib.SMTP_SSL(host=conf.get('email', 'host'),
                            port=conf.get('email', 'port'))
    smtp.login(user=conf.get('email', 'user'),
               password=conf.get('email', 'password'))
    # 2.构建邮件
    msg = MIMEMultipart()
    text_msg = MIMEText(open(file_path, 'r', encoding='utf8').read(), 'html')
    msg.attach(text_msg)

    file_msg = MIMEApplication(open(file_path, 'rb').read())
    file_msg.add_header('content-disposition',
                        'attachment',
                        filename='python.html')
    msg.attach(file_msg)

    msg['from'] = conf.get('email', 'user_from')
    user_to = ['*****@*****.**', '*****@*****.**']
    user_too = ','.join(user_to)
    print(user_too)
    msg['to'] = user_too
    msg['subject'] = conf.get('email', 'subject')

    # 3.发送邮件
    smtp.send_message(msg,
                      from_addr=conf.get('email', 'user_from'),
                      to_addrs=user_too)
Esempio n. 10
0
    def test_audit(self, case):
        # 准备数据
        url = conf.get('env', 'url') + case['url']
        case['data'] = handle_data(case['data'])
        data = eval(case['data'])
        method = case['method']
        expected = eval(case['expected'])
        headers = eval(conf.get('env', 'headers'))
        headers['Authorization'] = getattr(TestData, 'token_data')
        row = case['case_id'] + 1

        # 发送请求
        response = self.http.send(url=url,
                                  method=method,
                                  json=data,
                                  headers=headers)
        json_res = response.json()

        # 如果审核通过的项目返回ok,说明该项目已审核
        if case['title'] == '审核通过' and json_res['msg'] == 'OK':
            pass_loan_id = getattr(TestData, 'loan_id')
            setattr(TestData, 'pass_loan_id', pass_loan_id)

        # 断言
        try:
            self.assertEqual(json_res['code'], expected['code'])
            self.assertEqual(json_res['msg'], expected['msg'])
            if case['check_sql']:
                sql = handle_data(case['check_sql'])
                status = self.db.get_one(sql)[0]
                self.assertEqual(status, expected['status'])

        except AssertionError as e:
            self.excel.write(row=row, column=8, value='未通过')
            mylog.info('用例:{}---->执行未通过'.format(case['title']))
            print('预期结果:{}'.format(expected))
            print('实际结果:{}'.format(json_res))

            raise e
        else:
            self.excel.write(row=row, column=8, value='通过')
            mylog.info('用例:{}---->执行通过'.format(case['title']))
Esempio n. 11
0
def handle_data(data):
    r = r'#(.+?)#'
    while re.search(r, data):
        res = re.search(r, data)
        item = res.group()
        key = res.group(1)
        try:
            data = data.replace(item, getattr(TestData, key))
        except:
            data = data.replace(item, conf.get('test_data', key))

    return data
Esempio n. 12
0
    def test_register(self, case):
        #准备用例数据
        # 获取url
        url = conf.get('env', 'url') + case['url']
        # 请求方法
        method = case['method']
        #判断是否有手机号需要替换
        if '#phone#' in case['data']:
            phone = self.random_phone()
            case['data'] = case['data'].replace('#phone#', phone)
        data = eval(case['data'])
        #期望结果
        expected = eval(case['expected'])
        #获取请求头
        headers = eval(conf.get('env', 'headers'))
        #获取用例id
        row = case['case_id'] + 1

        #发送请求
        response = self.http.send(url=url,
                                  method=method,
                                  json=data,
                                  headers=headers)
        res = response.json()

        #断言
        try:
            self.assertEqual(expected['code'], res['code'])
            self.assertEqual(expected['msg'], res['msg'])
        except AssertionError as e:
            self.excel.write(row=row, column=8, value='未通过')
            mylog.info('用例:{}---->执行未通过'.format(case['title']))
            print('期望结果:{}'.format(expected))
            print('实际结果:{}'.format(res))
            raise e
        else:
            self.excel.write(row=row, column=8, value='通过')
            mylog.info('用例:{}---->执行通过'.format(case['title']))
Esempio n. 13
0
    def setUpClass(cls):
        #拼接url地址
        url = conf.get('env', 'url') + '/member/login'
        data = {
            'mobile_phone': conf.get('test_data', 'mobile_phone'),
            'pwd': conf.get('test_data', 'pwd')
        }
        headers = eval(conf.get('env', 'headers'))

        #发送请求
        response = cls.http.send(url=url,
                                 method='post',
                                 json=data,
                                 headers=headers)
        result = response.json()

        #提取member_id
        cls.member_id = jsonpath.jsonpath(result, '$..id')[0]
        #提取token_type
        token_type = jsonpath.jsonpath(result, '$..token_type')[0]
        #提取token
        token = jsonpath.jsonpath(result, '$..token')[0]
        #拼接token
        cls.token_data = token_type + ' ' + token
Esempio n. 14
0
"""
============================
Author  : XiaoLei.Du
Time    : 2020/8/16 11:12
E-mail  : [email protected]
File    : mylogger.py
============================
"""
import os
import logging
from common.myconifg import conf
from common.contains import LOGDIR

# 读取配置文件中的数据
level = conf.get('logging', 'level')
s_level = conf.get('logging', 's_level')
f_level = conf.get('logging', 'f_level')
file_nane = conf.get('logging', 'file_nane')
# 获取日志文件的路径
log_path = os.path.join(LOGDIR, file_nane)


class MyLog:
    @staticmethod
    def mylogger():
        # 一、创建一个名为test_log的日志收集器
        mylog = logging.getLogger('test_log')
        # 二、设置收集器的等级
        mylog.setLevel(level)
        # 三、添加输出渠道到控制台
        # 1、创建一个输出到控制台的输出渠道
Esempio n. 15
0
 def setUpClass(cls):
     cls.phone = conf.get('test_data', 'mobile_phone')
     cls.pwd = conf.get('test_data', 'pwd')