Example #1
0
class LoginTest(unittest.TestCase):
    excel = do_excel.DoExcel(contants.api_case_file, 'login')
    cases = excel.get_case()
    # cases = do_excel.DoExcel(contants.api_case_file,'login').get_case() #读取文件

    @classmethod  #变为类方法,如果不变为类方法,每运行一个用来就会执行一次该操作
    def setUpClass(cls):
        logger.info("准备测试前置")
        cls.http_request = HttpRequests2()

    # def setUp(self):
    #     self.http_request = HttpRequests2()

    @data(*cases)  #装饰测试方法,接收可迭代数据,cases为实例
    def test_login(self, case):
        logger.info("开始测试:{}".format(case.title))
        resp = self.http_request.request(case.method, case.url, case.data)
        try:
            self.assertEqual(case.expected, resp.text)
            self.excel.write_result(case.case_id + 1, resp.text, 'PASS')
        except AssertionError as e:
            self.excel.write_result(case.case_id + 1, resp.text, 'FAIL')
            logger.error("报错了:{0}".format(e))
            raise e
        logger.info('测试结束:{0}'.format(case.title))

    @classmethod  #变为类方法
    def tearDownClass(cls):
        logger.info("测试后置处理")
        cls.http_request.close()
Example #2
0
class RechargeTest(unittest.TestCase):
    excel = do_excel.DoExcel(contants.api_case_file, 'pid')
    cases = excel.get_case()
    # cases = do_excel.DoExcel(contants.api_case_file,'recharge').get_case() #读取文件

    @classmethod  #变为类方法,如果不变为类方法,每运行一个用来就会执行一次该操作
    def setUpClass(cls):
        cls.http_request = HttpRequests2()

    @data(*cases)  #装饰测试方法,接收可迭代数据,cases为实例
    def test_recharge(self, case):
        print(case.title)
        resp = self.http_request.request(case.method, case.url, case.data)
        actual_code = resp.json()['code']
        print(actual_code)
        try:
            self.assertEqual(str(case.expected), actual_code)
            self.excel.write_result(case.case_id + 1, resp.text, 'PASS')
        except AssertionError as e:
            self.excel.write_result(case.case_id + 1, resp.text, 'FAIL')
            raise e

    @classmethod  #变为类方法,如果不变为类方法,每运行一个用来就会执行一次该操作
    def tearDownClass(cls):
        cls.http_request.close()
Example #3
0
class AddTest(unittest.TestCase):
    excel = do_excel.DoExcel(contants.api_case_file, 'add')
    cases = excel.get_case()
    # cases = do_excel.DoExcel(contants.api_case_file,'login').get_case() #读取文件

    @classmethod  #变为类方法,如果不变为类方法,每运行一个用来就会执行一次该操作
    def setUpClass(cls):
        cls.http_request = HttpRequests2()

    # def setUp(self):
    #     self.http_request = HttpRequests2()

    @data(*cases)  #装饰测试方法,接收可迭代数据,cases为实例
    def test_add(self, case):
        # case.data = eval(case.data) #转换成字典
        # print(type(case))
        # if case.data.__contains__('mobilephone') and case.data['mobilephone'] == 'normal_user':  #has_key判断键是否存在字典,存在返回Ture,否则返回false
        #     case.data['mobilephone'] = config.get('data','normal_user')  #那到配置文件里面的值赋值给mobilephone
        #
        # if case.data.__contains__('pwd') and case.data['pwd'] == 'normal_pwd':  #has_key判断键是否存在字典,存在返回Ture,否则返回false
        #     case.data['pwd'] = config.get('data','normal_pwd')  #那到配置文件里面的值赋值给pwd
        #
        # if  case.data.__contains__('memberId') and case.data['memberId'] == 'loan_member_id':  #has_key判断键是否存在字典,存在返回Ture,否则返回false
        #     case.data['memberId'] = config.get('data','loan_member_id')  #那到配置文件里面的值赋值给mobilephone
        #在请求之前替换参数化的值
        case.data = context.replace(case.data)
        resp = self.http_request.request(case.method, case.url, case.data)
        try:
            self.assertEqual(str(case.expected), resp.json()['code'])
            self.excel.write_result(case.case_id + 1, resp.text, 'PASS')
        except AssertionError as e:
            self.excel.write_result(case.case_id + 1, resp.text, 'FAIL')
            raise e
Example #4
0
class RegisterTest(unittest.TestCase):
    excel = do_excel.DoExcel(contants.api_case_file, 'register')
    cases = excel.get_case()
    # cases = do_excel.DoExcel(contants.api_case_file,'login').get_case() #读取文件

    @classmethod  #变为类方法,如果不变为类方法,每运行一个用来就会执行一次该操作
    def setUpClass(cls):
        cls.http_request = HttpRequests2()
        # def setUp(self):
        #     self.http_request = HttpRequests2()
        cls.mysql = do_mysql.DoMysql()

    @data(*cases)  #装饰测试方法,接收可迭代数据,cases为实例
    def test_register(self, case):
        if case.data.find("register_mobile") > -1:

            sql = 'select max(mobilephone) from future.member'
            #sql = 'select * from future.member where mobilephone = "15717481999"'
            #max_phone = self.mysql.fetch_one(sql)[0]  #查询最大手机号码  ,fetchone返回值为元祖
            phone = self.mysql.fetch_one(sql)[0]
            new_phone = int(phone) + 1

            # if self.mysql.fetch_one(sql) != None:
            #     phone = self.mysql.fetch_one(sql)[3]
            #
            #     new_phone = int(phone) + 1
            #
            #     user = self.mysql.fetch_one('select * from future.member where mobilephone = "new_phone"')
            #     print("请求user:"******"new_phone"')
            #         #最大手机号码+1
            #         #max_phone = int(max_phone) + 1
            #         #new_phone = int(new_phone) + 1
            #         #print("最大手机号码:",max_phone)

            print("新手机号码:", new_phone)
            case.data = case.data.replace(
                'register_mobile',
                str(new_phone))  #替换参数值,replace替换新的字符串,重新返回一个新的字符串

        resp = self.http_request.request(case.method, case.url, case.data)
        try:
            self.assertEqual(case.expected, resp.text)
            self.excel.write_result(case.case_id + 1, resp.text, 'PASS')
        except AssertionError as e:
            self.excel.write_result(case.case_id + 1, resp.text, 'FAIL')
            raise e
Example #5
0
class RechargeTest(unittest.TestCase):
    excel = do_excel.DoExcel(contants.api_case_file, 'recharge')
    cases = excel.get_case()
    # cases = do_excel.DoExcel(contants.api_case_file,'recharge').get_case() #读取文件

    @classmethod  #变为类方法,如果不变为类方法,每运行一个用来就会执行一次该操作
    def setUpClass(cls):
        cls.http_request = HttpRequests2()
        cls.mysql = DoMysql()

    @data(*cases)  #装饰测试方法,接收可迭代数据,cases为实例
    def test_recharge(self, case):
        print(case.title)

        #请求之前,判断是否需要执行sql
        if case.sql is not None:
            sql = eval(case.sql)['sql1']
            member = self.mysql.fetch_one(sql)
            print(member['LeaveAmount'])
            before = member['LeaveAmount']

        resp = self.http_request.request(case.method, case.url, case.data)
        actual_code = resp.json()['code']
        print(actual_code)
        try:
            self.assertEqual(str(case.expected), actual_code)
            self.excel.write_result(case.case_id + 1, resp.text, 'PASS')
            # 成功之后,判断是否需要执行SQL
            if case.sql is not None:
                sql = eval(case.sql)['sql1']
                member = self.mysql.fetch_one(sql)
                print(member['LeaveAmount'])
                after = member['LeaveAmount']
                recharge_amount = int(eval(case.data)['amount'])  # 充值金额
                self.assertEqual(before + recharge_amount, after)

        except AssertionError as e:
            self.excel.write_result(case.case_id + 1, resp.text, 'FAIL')
            raise e
Example #6
0
class InvestTest(unittest.TestCase):
    excel = do_excel.DoExcel(contants.api_case_file, 'invest')
    cases = excel.get_case()
    # cases = do_excel.DoExcel(contants.api_case_file,'login').get_case() #读取文件

    @classmethod  #变为类方法,如果不变为类方法,每运行一个用来就会执行一次该操作
    def setUpClass(cls):
        cls.http_request = HttpRequests2()
        cls.mysql = do_mysql.DoMysql()

    # def setUp(self):
    #     self.http_request = HttpRequests2()

    @data(*cases)  #装饰测试方法,接收可迭代数据,cases为实例
    def test_invest(self, case):
        print("开始执行测试:", case.title)
        #在请求之前替换参数化的值
        case.data = context.replace(case.data)
        resp = self.http_request.request(case.method, case.url, case.data)
        try:
            self.assertEqual(str(case.expected), resp.json()['code'])
            self.excel.write_result(case.case_id + 1, resp.text, 'PASS')

            #p判断加标成功后,查询数据库,取到loan_id
            if resp.json()['msg'] == '加标成功':
                sql = "select id from future.loan WHERE MemberID = 839 order by id desc limit 1"
                loan_id = self.mysql.fetch_one(sql)[0]
                print('标的ID:', loan_id)
                setattr(Context, "loan_id", str(loan_id))  #添加类属性

        except AssertionError as e:
            self.excel.write_result(case.case_id + 1, resp.text, 'FAIL')
            raise e

    @classmethod  #变为类方法
    def tearDownClass(cls):
        cls.http_request.close()