Beispiel #1
0
    def test(self, items):
        case_id = items.case_id  # 获取case_id
        title = items.title  # 获取title
        method = items.method  # 获取请求方法
        url = ob.getstr('url', 'url') + items.url  # 获取url地址
        rp = Replace(section2='login')
        data = eval(rp.replace_data(items.data))  # 获取请求数据
        except_result = str(items.except_result)  # 获取预期结果
        print('第{}条用例开始执行:{}'.format(case_id, title))
        self.mylog1.info('第{}条用例开始执行:{}'.format(case_id, title))  # 打印日志
        if items.check_sql:  # 如果需要校验数据库
            sql = rp.replace_data(items.check_sql)  # 获取sql语句
            select_result = self.ms.select(sql)  # 充值或者取现前的查询结果
            leave_amount = select_result[0][0]  # 拿到充值或者取现前的账户余额
            print(leave_amount)
            res = HttpSession(
                url=url, data=data).httprequest(method=method).json()  # 请求
            select_result1 = self.ms.select(sql)  # 充值后的查询结果
            if items.interface == 'recharge':  # 如果为充值接口
                except_leave_amount = leave_amount + Decimal(
                    str(data['amount']))  # 得到预期的充值之后的余额
            elif items.interface == 'withdraw':  # 如果为取现接口
                except_leave_amount = leave_amount - Decimal(
                    str(data['amount']))  # 得到预期提现后的余额
            leave_amount1 = select_result1[0][0]  # 拿到充值或者提现后后的账户余额
            print('充值或者取现前的账户余额为{}'.format(leave_amount))
            print('预期的账户余额为{}'.format(except_leave_amount))
            print('充值或者取现后的账户余额为{}'.format(leave_amount1))
        else:
            res = HttpSession(
                url=url, data=data).httprequest(method=method).json()  # 请求
        res1 = res['code']  # 返回的状态码

        print('实际结果为{}'.format(except_result))
        print('预期结果为{}'.format(res1))
        # 比对实际与预期结果
        try:
            self.assertEqual(res1, except_result)
            if items.check_sql:  # 如果需要校验数据库
                self.assertEqual(except_leave_amount,
                                 leave_amount1)  # 比对预期的充值之后的余额与实际的账户余额
        except AssertionError as e:  # 若实际与预期不符
            print('测试未通过')
            self.excel.write(row=case_id + 1, column=9, value='未通过')  # 回写测试结果
            self.mylog1.error('测试未通过,未通过信息为:{}'.format(e))  # 打印日志
            raise e  # 抛出异常
        else:
            print('测试通过')

            self.excel.write(row=case_id + 1, column=9, value='通过')  # 回写测试结果
            self.mylog1.info('测试通过')  # 打印日志
        finally:
            self.excel.write(row=case_id + 1, column=8, value=res1)  # 回写实际结果
 def login(self):
     '''登录'''
     self.register()  # 注册
     url = "http://test.lemonban.com/futureloan/mvc/api/member/login"
     phone = getattr(ConText, "phone")
     pwd = getattr(ConText, "pwd")
     data = {"mobilephone": phone, "pwd": pwd}
     HttpSession(url=url, data=data).httprequest(method='post')  # 发送请求
Beispiel #3
0
    def test(self, items):
        rp = Replace()  # 创建替换对象

        # 获取测试用例的数据
        case_id = items.case_id  # 用例数据的编号
        title = items.title  # 用例的标题

        method = items.method  # 请求方法
        url = ob.getstr('url', 'url') + items.url  # 请求地址
        except_result = str(items.except_result)  # 获得预期结果
        data = items.data

        if items.check_sql:
            if items.interface == 'generateRepayments':
                result1 = self.mysql.find_result(
                    rp.replace_data(items.check_sql))  # 请求前数据表中记录的个数

        if "@loanId@" in items.data:
            max_loanId = self.mysql.select(sql="SELECT max(Id)From loan",
                                           row=1)[0]  # 查到loan表的最大标id
            data = data.replace("@loanId@", str(max_loanId + 100))
        data = eval(rp.replace_data(data))  # 替换后的申请数据
        print(data)

        print('第{}条用例开始执行:{}'.format(case_id, title))  # 打印信息
        self.mylog.info('第{}条用例开始执行:{}'.format(case_id, title))  # 写进日志
        # 发送请求获取实际结果
        res = HttpSession(url=url,
                          data=data).httprequest(method=method).json()['code']
        # 比对实际与预期结果
        print('预期结果:{}'.format(except_result))
        print('实际结果:{}'.format(res))
        try:
            self.assertEqual(except_result, res)
            if items.check_sql:  # 如果需要数据库校验
                if items.interface == 'bidloan':
                    investId = self.mysql.select(
                        rp.replace_data(items.check_sql))[0][0]  # 竞标得到investId
                    setattr(ConText, 'investId', investId)  # 将investId写进常量类
                if items.interface == 'generateRepayments':
                    select_result = self.mysql.find_result(
                        rp.replace_data(items.check_sql))  # 得到投资之后结果
                    self.assertEqual(1,
                                     select_result - result1)  # 比对查询的结果与预期的结果

        except AssertionError as e:
            print('{}测试用例未通过'.format(title))
            self.mylog.error('{}测试用例未通过,未通过的信息为{}'.format(title, e))  # 打印日志信息
            self.excle.write(row=case_id + 1, column=9, value='未通过')  # 回写测试结果
            raise e  # 抛出异常
        else:
            print('{}测试用例通过'.format(title))
            self.mylog.error('{}测试用例通过'.format(title))  # 打印日志信息
            self.excle.write(row=case_id + 1, column=9, value='通过')  # 回写测试结果
        finally:
            self.excle.write(row=case_id + 1, column=8, value=res)  # 回写实际结果
Beispiel #4
0
 def setUpClass(cls):
     url = ob.getstr('url', 'url') + '/member/login'
     phone = ob.getstr('login', 'phone')
     pwd = ob.getstr('login', 'pwd')
     login_data = {"mobilephone": phone, "pwd": pwd}  # 登录数据
     print('{}测试开始执行'.format(cls))
     cls.login = HttpSession(url=url, data=login_data).httprequest(
         method='post')  # 登录
     cls.ms = ObMysql()  # 创建数据库操作对象,打开数据库
     cls.mylog1.info('-----充值提现模块开始测试-----')
 def recharge(self, amount=20000):
     '''
     充值
     :param amount: 充值金额
     :return:
     '''
     self.login()  # 登录
     url = "http://test.lemonban.com/futureloan/mvc/api/member/recharge"
     phone = getattr(ConText, "phone")
     data = {"mobilephone": phone, "amount": amount}
     HttpSession(url=url, data=data).httprequest(method='post')  # 发送请求
 def withdraw(self, r_amount=10000, w_amount=5000):
     '''
     取现
     :param r_amount: 充值金额
     :param w_amount: 取现金额
     :return:
     '''
     self.recharge(r_amount)  # 先充值
     url = "http://test.lemonban.com/futureloan/mvc/api/member/withdraw"
     phone = getattr(ConText, "phone")
     data = {"mobilephone": phone, "amount": w_amount}
     HttpSession(url=url, data=data).httprequest(method='post')  # 发送请求
    def register(self):
        '''注册'''
        url = "http://test.lemonban.com/futureloan/mvc/api/member/register"
        phone = ob.getstr('register', 'phone')
        pwd = ob.getstr('register', 'pwd')
        data = {"mobilephone": phone, "pwd": pwd, "regname": "zhaojian"}
        HttpSession(url=url, data=data).httprequest(method='post')  # 发送请求

        setattr(ConText, "phone", phone)  # 将注册之后的手机号码临时变量当中
        setattr(ConText, "pwd", pwd)  # 将注册之后的密码临时变量当中
        memerid = self.mysql.select(
            'SELECT id FROM member WHERE MobilePhone="{}"'.format(phone))[0][0]
        setattr(ConText, "memberId", memerid)  # 将注册之后的用户id写到临时变量当中
        update_phone()  # 更新配置文件的手机号码
Beispiel #8
0
    def test(self, items):
        rp = Replace()  # 创建替换对象

        # 获取测试用例的数据
        case_id = items.case_id  # 用例数据的编号
        title = items.title  # 用例的标题

        method = items.method  # 请求方法
        url = ob.getstr('url', 'url') + items.url  # 请求地址
        except_result = str(items.except_result)  # 获得预期结果
        data = items.data

        if "@memberId@" in items.data:
            max_memberId = self.mysql.select(sql="SELECT max(Id)From member",
                                             row=1)[0]  # 查到member表的最大标id
            data = data.replace("@memberId@", str(max_memberId + 100))
        data = eval(rp.replace_data(data))  # 替换后的申请数据
        print(data)

        print('第{}条用例开始执行:{}'.format(case_id, title))  # 打印信息
        self.mylog.info('第{}条用例开始执行:{}'.format(case_id, title))  # 写进日志
        # 发送请求获取实际结果
        res = HttpSession(url=url,
                          data=data).httprequest(method=method).json()['code']
        # 比对实际与预期结果
        print('预期结果:{}'.format(except_result))
        print('实际结果:{}'.format(res))
        try:
            self.assertEqual(except_result, res)
        except AssertionError as e:
            print('{}测试用例未通过'.format(title))
            self.mylog.error('{}测试用例未通过,未通过的信息为{}'.format(title, e))  # 打印日志信息
            self.excle.write(row=case_id + 1, column=9, value='未通过')  # 回写测试结果
            raise e  # 抛出异常
        else:
            print('{}测试用例通过'.format(title))
            self.mylog.error('{}测试用例通过'.format(title))  # 打印日志信息
            self.excle.write(row=case_id + 1, column=9, value='通过')  # 回写测试结果
        finally:
            self.excle.write(row=case_id + 1, column=8, value=res)  # 回写实际结果
 def add(self,
         title='世界那么大,只想宅在家',
         amount=10000,
         loanrate=18.0,
         loanterm=6,
         loandatetype=0,
         repaymemtway=4,
         biddingdays=5):
     '''
     加标
     :param title:标题
     :param amount:借款金额
     :param loanrate:年利率
     :param loanterm:借款期限
     :param loandatetype:借款期限类型
     :param repaymemtway:还款方式
     :param biddingdays:竞标天数
     :return:
     '''
     self.recharge()
     url = "http://test.lemonban.com/futureloan/mvc/api/loan/add"
     memerid = getattr(ConText, "memberId")
     data = {
         "memberId": memerid,
         "title": title,
         "amount": amount,
         "loanRate": loanrate,
         "loanTerm": loanterm,
         "loanDateType": loandatetype,
         "repaymemtWay": repaymemtway,
         "biddingDays": biddingdays
     }
     HttpSession(url=url, data=data).httprequest(method='post')  # 发送请求
     loanid = self.mysql.select(
         'SELECT id FROM loan WHERE MemberId = "{}"'.format(memerid))[0][0]
     setattr(ConText, "loanId", loanid)  # 将标id写进临时变量当中
Beispiel #10
0
    def test(self, items):
        rp = Replace()  # 创建替换对象

        # 获取测试用例的数据
        case_id = items.case_id  # 用例数据的编号
        title = items.title  # 用例的标题

        method = items.method  # 请求方法
        url = ob.getstr('url', 'url') + items.url  # 请求地址
        except_result = str(items.except_result)  # 获得预期结果
        data = items.data

        if items.check_sql:
            result1 = self.mysql.find_result(rp.replace_data(
                items.check_sql))  # 查询投资之前invest投资该标记录的个数
            amount = self.mysql.select(
                "SELECT LeaveAmount FROM member WHERE MobilePhone= '{}'".
                format(getattr(ConText, 'phone')))[0][0]  # 查询投资用户投资之前的余额
        if "@memberId@" in items.data:
            max_memberid = self.mysql.select(sql="SELECT max(Id)From member",
                                             row=1)[0]  # 查到用户表的最大id
            data = data.replace("@memberId@", str(max_memberid + 100))
        if "@loanId@" in items.data:
            max_loanId = self.mysql.select(sql="SELECT max(Id)From loan",
                                           row=1)[0]  # 查到loan表的最大标id
            data = data.replace("@loanId@", str(max_loanId + 100))
        data = eval(rp.replace_data(data))  # 替换后的申请数据
        print(data)

        print('第{}条用例开始执行:{}'.format(case_id, title))  # 打印信息
        self.mylog.info('第{}条用例开始执行:{}'.format(case_id, title))  # 写进日志
        # 发送请求获取实际结果
        res = HttpSession(url=url,
                          data=data).httprequest(method=method).json()['code']
        # 比对实际与预期结果
        print('预期结果:{}'.format(except_result))
        print('实际结果:{}'.format(res))
        try:
            self.assertEqual(except_result, res)
            if items.check_sql:  # 如果需要数据库校验
                select_result = self.mysql.find_result(
                    rp.replace_data(items.check_sql))  # 得到投资之后结果
                amount1 = self.mysql.select(
                    "SELECT LeaveAmount FROM member WHERE MobilePhone= '{}'".
                    format(getattr(ConText, 'phone')))[0][0]  # 查询投资用户投资之后的余额
                bd_amount = Decimal(str(data['amount']))  # 拿到充值金额
                self.assertEqual(1, select_result - result1)  # 比对查询的结果与预期的结果
                self.assertEqual(bd_amount,
                                 amount - amount1)  # 比对余额的减少是否与投资的金额相等

        except AssertionError as e:
            print('{}测试用例未通过'.format(title))
            self.mylog.error('{}测试用例未通过,未通过的信息为{}'.format(title, e))  # 打印日志信息
            self.excle.write(row=case_id + 1, column=9, value='未通过')  # 回写测试结果
            raise e  # 抛出异常
        else:
            print('{}测试用例通过'.format(title))
            self.mylog.error('{}测试用例通过'.format(title))  # 打印日志信息
            self.excle.write(row=case_id + 1, column=9, value='通过')  # 回写测试结果
        finally:
            self.excle.write(row=case_id + 1, column=8, value=res)  # 回写实际结果