Ejemplo n.º 1
0
class AddTest(unittest.TestCase):
    excel = do_excel.DoExcel(contants.case_file, 'add')
    cases = excel.get_cases()

    @classmethod
    def setUpClass(cls):
        cls.http_request = HTTPRequest2()

    @data(*cases)
    def test_add(self, case):
        # case.data = eval(case.data)  # 变成字典
        # print(type(case.data))
        # if case.data.__contains__('mobilephone') and case.data['mobilephone'] == 'normal_user':
        #     case.data['mobilephone'] = config.get('data', 'normal_user')  # 拿到配置文件里面的值赋值给mobilephone
        #
        # if case.data.__contains__('pwd') and case.data['pwd'] == 'normal_pwd':
        #     case.data['pwd'] = config.get('data', 'normal_pwd')  # 拿到配置文件里面的值赋值给mobilephone
        #
        # if case.data.__contains__('memberId') and case.data['memberId'] == 'loan_member_id':
        #     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
Ejemplo n.º 2
0
class LoginTest(unittest.TestCase):
    excel = do_excel.DoExcel(contants.case_file, 'login')
    cases = excel.get_cases()

    @classmethod
    def setUpClass(cls):
        logger.info('准备测试前置')
        cls.http_request = HTTPRequest2()

    @data(*cases)
    def test_login(self,case):
            logger.info('开始测试{0}'.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

    @classmethod
    def tearDownClass(cls):
        logger.info('测试后置处理')
        cls.http_request.close()
Ejemplo n.º 3
0
class TestLogin(unittest.TestCase):
    excel = do_excel.DoExcel(contants.case_file, 'TestLogin')
    cases = excel.get_case()

    @classmethod
    def setUpClass(cls):
        logger.info('准备测试前置')
        cls.http_request = HTTPRequest2()

    @data(*cases)  #data可以接收可迭代数据类型,列表,元组,字典
    def test_login(self, case):
        # print(case.title)

        logger.info('开始测试:{0}'.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()
Ejemplo n.º 4
0
class RegisterTest(unittest.TestCase):
    excel = do_excel.DoExcel(contants.case_file, 'register')
    cases = excel.get_cases()

    @classmethod
    def setUpClass(cls):
        cls.http_request = HTTPRequest2()
        cls.mysql = do_mysql.DoMysql()

    @data(*cases)
    def test_register(self, case):
        if case.data.find('register_mobile') > -1:  # 判断参数化的标识
            sql = 'select max(mobilephone) from future.member where mobilephone = 18574379922'
            max_phone = self.mysql.fetch_one(sql)[0]  # 查询最大手机号码
            #最大手机号码+1
            max_phone = int(max_phone) + 1
            print('最大手机号码', max_phone)
            #replace 方法是替换之后重新返回一个新的字符串
            case.data = case.data.replace('register_mobile',
                                          str(max_phone))  # 替换参数值

        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
Ejemplo n.º 5
0
class RechargeTest(unittest.TestCase):
    excel = do_excel.DoExcel(contants.case_file, 'recharge')
    cases = excel.get_cases()

    @classmethod
    def setUpClass(cls):
        cls.http_request = HTTPRequest2()
        cls.mysql = DoMysql()

    @data(*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']
        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
Ejemplo n.º 6
0
class InvestTest(unittest.TestCase):
    excel = do_excel.DoExcel(contants.case_file, 'invest')
    cases = excel.get_cases()

    @classmethod
    def setUpClass(cls):
        cls.http_request = HTTPRequest2()
        cls.mysql = do_mysql.DoMysql()

    @data(*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')

            # 判断加标成功之后,查询数据库,取到loan_id
            if resp.json()['msg'] == "加标成功":
                sql = "select id from future.loan where memberid = 1008 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()
Ejemplo n.º 7
0
class SourceTest(unittest.TestCase):
    excel = do_excel.DoExcel(contants.case_file, 'source')
    cases = excel.get_case()

    @classmethod
    def setUpClass(cls):
        cls.http_request = HttpRequestSession()
        # cls.mysql = do_mysql.DoMysql()

    @data(*cases)
    def test_source(self, case):
        global headers
        # case.data = eval(case.data)  # 变成字典
        # if 'mobile' in case.data and case.data['mobile'] == 'normal_user':
        #     case.data['mobile'] = config.get('data', 'normal_user') #拿到配置文件里的值赋给mobile
        # if 'password' in case.data and case.data['password'] == 'normal_pwd':
        #     case.data['password'] = config.get('data', 'normal_pwd')
        # if 'project' in case.data and case.data['project'] == 'normal_project':
        #     case.data['project'] = config.get('data', 'normal_project')

        # 在请求之前,替换参数化的值
        case.data = context.replace(case.data)

        if case.title == '正常登陆':
            resp = self.http_request.request(case.method,
                                             case.url,
                                             data=case.data)
            token = resp.json()["data"]["access_token"]
            headers = {'Authorization': 'Bearer {}'.format(token)}
        else:
Ejemplo n.º 8
0
class TestRegister(unittest.TestCase):
    excel = do_excel.DoExcel(contants.case_file, 'TestRegister')
    cases = excel.get_case()

    @classmethod
    def setUpClass(cls):
        cls.http_request = HTTPRequest2()
        cls.mysql = do_mysql.DoMysql()

    @data(*cases)  #data可以接收可迭代数据类型,列表,元组,字典
    def test_register(self, case):
        print(case.title)
        if case.data.find('register_mobile') > -1:
            sql = 'select max(mobilephone) from future.member'
            max_phone = self.mysql.fetch_one(sql)[0]  #查询最大手机号码

            #最大手机号码加1
            # max_phone=int(max_phone)+1    #因为库里最大是18999999999,所以这行被我注释
            print('最大手机号码', max_phone)

            #replace()方法是替换之后重新返回一个新的字符串,需要重新赋值给case.data
            case.data = case.data.replace('register_mobile',
                                          str(max_phone))  #最大手机号码替换参数值

        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
Ejemplo n.º 9
0
class LoginTest(unittest.TestCase):
    excel = do_excel.DoExcel(contants.case_file, 'login')
    cases = excel.get_case()

    @classmethod
    def setUpClass(cls):
        logger.info('准备测试前置')
        cls.http_request = HttpRequestSession()

    @data(*cases)
    def test_login(self, case):
        logger.info('开始测试:{}'.format(case.title))
        resp = self.http_request.request(case.method, case.url, data=case.data)
        actual = resp.json()["message"]
        try:
            self.assertEqual(case.expected, actual)
            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('测试报错了:{}'.format(e))
            raise e
        logger.info('结束测试:{}'.format(case.title))

    @classmethod
    def tearDownClass(cls):
        logger.info('测试后置处理')
        cls.http_request.close()
Ejemplo n.º 10
0
class PermissionTest(unittest.TestCase):
    excel = do_excel.DoExcel(contants.case_file, 'permission')
    cases = excel.get_case()

    @classmethod
    def setUpClass(cls):
        cls.http_request = HttpRequestSession()

    @data(*cases)
    def test_permission(self, case):
        global headers
        if case.title == '正常登陆':
            resp = self.http_request.request(case.method,
                                             case.url,
                                             data=case.data)
            token = resp.json()["data"]["access_token"]
            headers = {'Authorization': 'Bearer {}'.format(token)}
        else:
Ejemplo n.º 11
0
class TestInvest(unittest.TestCase):
    excel = do_excel.DoExcel(contants.case_file, 'TestInvest')
    cases = excel.get_case()

    @classmethod
    def setUpClass(cls):
        cls.http_request = HTTPRequest2()
        cls.mysql = do_mysql.DoMysql()

    @data(*cases)  #data可以接收可迭代数据类型,列表,元组,字典
    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)
        print(resp.text)
        print(resp.status_code)

        try:
            self.assertEqual(case.expected, resp.text)
            self.excel.write_result(case.case_id + 1, resp.text, "pass")

            #判断加标之后,查询数据库,取到loan_id
            if resp.json()['msg'] == "加标成功":
                sql = 'select id from future.loan where memberId = 1197 ORDER BY id desc limit 1;'
                loan_id = self.mysql.fetch_one(sql)[0]  #fetch_one返回的是元组
                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()
Ejemplo n.º 12
0
class TestAdd(unittest.TestCase):
    excel = do_excel.DoExcel(contants.case_file, 'TestAdd')
    cases = excel.get_case()

    @classmethod
    def setUpClass(cls):
        cls.http_request = HTTPRequest2()

    @data(*cases)  #data可以接收可迭代数据类型,列表,元组,字典
    def test_add(self, case):
        print(case.title)

        # case.data=eval(case.data)    #变成字典
        #
        # if case.data.__contains__('mobilephone') and case.data['mobilephone'] == 'normal_user':
        #     case.data['mobilephone'] = config.get('data','normal_user')       #拿到配置文件里面的值赋值给mobilephone
        #
        # if case.data.__contains__('pwd') and case.data['pwd'] == 'normal_pwd':
        #     case.data['pwd'] = config.get('data','normal_pwd')
        #
        # if case.data.__contains__('memberId') and case.data['memberId'] == 'loan_member_id':
        #     case.data['memberId'] = config.get('data','loan_member_id')

        #在请求之前替换参数化的值
        case.data = context.replace(case.data)

        resp = self.http_request.request(case.method, case.url, case.data)
        print(resp.text)
        print(resp.status_code)

        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

    @classmethod
    def tearDownClass(cls):
        cls.http_request.close()
Ejemplo n.º 13
0
class TestRecharge(unittest.TestCase):
    excel = do_excel.DoExcel(contants.case_file, 'TestRecharge')
    cases = excel.get_case()

    @classmethod
    def setUpClass(cls):
        cls.http_request = HTTPRequest2()
        cls.mysql = DoMysql()

    @data(*cases)  #data可以接收可迭代数据类型,列表,元组,字典
    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']  #返回的是字典,然后找code,d[key]

        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
class LoginTest(unittest.TestCase):
    excel = do_excel.DoExcel(contants.case_file, 'public')
    cases = excel.get_case()

    @classmethod
    def setUpClass(cls):
        cls.http_request = HttpRequestSession()
        cls.mysql = do_mysql.DoMysql()

    @data(*cases)
    def test_login(self, case):
        if case.data.find('login_mobile'):
            sql = 'select mobile from baiyou_pre.by_member where mobile="18356522530"'
            mobile = self.mysql.fetch_one(sql)[0]
            case.data = case.data.replace('login_mobile', mobile)

        resp = self.http_request.request(case.method, case.url, data=case.data)
        actual = resp.json()["message"]
        try:
            self.assertEqual(case.expected, actual)
            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