Exemplo n.º 1
0
    def tearDownClass(cls):
        logger.get_logger(__name__).info('准备测试后置')
        cls.http_test.close()
        cls.mysql.close()
        print("用例执行完毕")

    # def tearDown(self):
    #     self.mysql.close()
Exemplo n.º 2
0
class LoginTest(unittest.TestCase):
    logger = logger.get_logger(__name__)

    @classmethod
    def setUpClass(cls):
        logger.get_logger(__name__).info('准备测试前置')
        cls.http_test = http_request.HTTPRequest2()
        cls.mysql = do_mysql.DoMysql()

    # def setUp(self):
    #     self.mysql = do_mysql.DoMysql()
    #读取测试用例
    do_Myexcel = DoExcel(contants.case_file, 'login')
    cases = do_Myexcel.get_cases()

    @data(*cases)  #装饰方法
    def test_login(self, case):
        # 在请求之前替换参数化的值
        case.data = context.replace(case.data)
        print(case.data)

        self.logger.info('开始测试:{0}'.format(case.title))
        resp = self.http_test.request(case.method, case.url, case.data)
        #actual_code=resp.json()['code']
        try:
            #self.assertEqual(str(case.expected),actual_code)
            self.assertEqual(case.expected, resp.text)
            self.do_Myexcel.write_result(case.case_id + 1, resp.text, 'PASS')
        except AssertionError as e:
            self.do_Myexcel.write_result(case.case_id + 1, resp.text, 'FAIL')
            self.logger.error('报错了,{0}'.format(e))
            raise e

        self.logger.info('结束测试:{0}'.format(resp.text))
Exemplo n.º 3
0
class HTTPRequest2:
    """
    使用这类的request方法去完成不同的HTTP请求,并且返回响应结果
    """
    # 生成Log文件
    logger = logger.get_logger(__name__)

    def __init__(self):
        #打开一个session
        self.session = requests.sessions.session()

    def request(self, method, url, data=None, json=None):
        if type(data) == str:
            data = eval(data)
        #拼接url
        url = config.ReadConfig().get('api', 'pre_url') + url
        self.logger.debug('请求url:{0}'.format(url))
        self.logger.debug('请求data:{0}'.format(data))
        if method.upper() == 'GET':
            resp = self.session.request(method=method, url=url, params=data)
        elif method.upper() == 'POST':
            if json:
                resp = self.session.request(method=method, url=url, json=data)
            else:
                resp = self.session.request(method=method, url=url, data=data)
        else:
            resp = None
            self.logger.error('UN-support method')
        self.logger.debug('请求response:{0}'.format(resp.text))
        return resp

    def close(self):
        self.session.close()
Exemplo n.º 4
0
class LoginTest(unittest.TestCase):
    logger = logger.get_logger(__name__)

    @classmethod
    def setUpClass(cls):
        logger.get_logger(__name__).info('准备测试前置')
        cls.http_test = http_request.HTTPRequest2()
        cls.mysql = do_mysql.DoMysql()

    #读取测试用例
    do_Myexcel = DoExcel(contants.case_file, 'recharge')
    cases = do_Myexcel.get_cases()

    @data(*cases)  #装饰方法
    def test_recharge(self, case):
        self.logger.info('开始测试:{0}'.format(case.title))
        # 在请求之前替换参数化的值
        case.data = context.replace(case.data)
        print(case.data)
        #请求之前,判断是否需要执行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_test.request(case.method, case.url, case.data)
        #print(resp.text)
        actual_code = resp.json()['code']
        try:
            self.assertEqual(str(case.expected), actual_code)
            #self.assertEqual(case.expected, resp.text)
            self.do_Myexcel.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 = eval(case.data)['amount']  #充值金额
                print(type(recharge_amount))
                self.assertEqual(before + recharge_amount, after)
        except AssertionError as e:
            self.do_Myexcel.write_result(case.case_id + 1, resp.text, 'FAIL')
            self.logger.error('报错了!{0}'.format(e))
            raise e
        self.logger.info('结束测试:{0}'.format(resp.text))
Exemplo n.º 5
0
class RegisterTest(unittest.TestCase):
    logger = logger.get_logger(__name__)

    @classmethod
    def setUpClass(cls):
        cls.http_test = http_request.HTTPRequest2()
        cls.mysql = do_mysql.DoMysql()
        logger.get_logger(__name__).info('准备测试前置')

    #读取测试用例
    do_Myexcel = DoExcel(contants.case_file, 'register')
    cases = do_Myexcel.get_cases()

    @data(*cases)  #装饰方法
    def test_register(self, case):
        #print(case.data.find('register_mobile'))
        self.logger.info('开始测试:{0}'.format(case.title))
        i = random.randint(20, 100)
        if case.data.find('register_mobile') > -1:
            sql = 'select max(mobilephone) from future.member'
            max_phone = self.mysql.fetch_one(sql)[
                'max(mobilephone)']  #查询最大手机号码
            #最大手机号码-i
            max_phone = int(max_phone) - i
            print(max_phone)
            #replace方法是转换之后重新返回一个新的字符串
            case.data = case.data.replace('register_mobile', str(max_phone))

        resp = self.http_test.request(case.method, case.url, case.data)
        #print(resp.text)
        #actual_code=resp.json()['code']
        try:
            #self.assertEqual(str(case.expected),actual_code)
            self.assertEqual(case.expected, resp.text)
            self.do_Myexcel.write_result(case.case_id + 1, resp.text, 'PASS')
            #数据库校验,查询数据库是否存在刚注册手机号
            if resp.json()['msg'] == '注册成功':
                sql = 'SELECT * FROM future.member WHERE mobilephone=' + str(
                    max_phone)
                member_id = self.mysql.fetch_one(sql)['mobilephone']
                print(member_id)
                self.assertEqual(member_id, str(max_phone))
        except AssertionError as e:
            self.do_Myexcel.write_result(case.case_id + 1, resp.text, 'FAIL')
            self.logger.info('报错了,{0}'.format(e))
            raise e
        self.logger.info('结束测试:{0}'.format(resp.text))
Exemplo n.º 6
0
class bidLoanTest(unittest.TestCase):
    logger=logger.get_logger(__name__)
    @classmethod
    def setUpClass(cls):
        logger.get_logger(__name__).info('准备测试前置')
        cls.http_test=http_request.HTTPRequest2()
        cls.mysql = do_mysql.DoMysql()
    # def setUp(self):
    #     self.mysql = do_mysql.DoMysql()
    #读取测试用例
    do_Myexcel = DoExcel(contants.case_file, 'add')
    cases = do_Myexcel.get_cases()

    @data(*cases)#装饰方法
    def test_add(self,case):
        #case.data=eval(case.data)
        # if case.data.__contains__('mobilephone') and case.data['mobilephone']=='normal_user':
        #     case.data['mobilephone']=config.ReadConfig().get('data','normal_user')
        # if case.data.__contains__('pwd') and case.data['pwd']=='normal_pwd':
        #     case.data['pwd']=config.ReadConfig().get('data','normal_pwd')
        self.logger.info('开始测试:{0}'.format(case.title))
        #在请求之前替换参数化的值
        case.data=context.replace(case.data)
        #print(case.data)
        resp=self.http_test.request(case.method,case.url,case.data)
        #print(resp.text)
        #actual_code=resp.json()['code']
        try:
            #self.assertEqual(str(case.expected),actual_code)
            self.assertEqual(case.expected, resp.text)
            self.do_Myexcel.write_result(case.case_id+1,resp.text,'PASS')
        except AssertionError as e:
            self.do_Myexcel.write_result(case.case_id+1,resp.text,'FAIL')
            self.logger.error('报错了,{0}'.format(e))
            raise e
        self.logger.info('结束测试:{0}'.format(resp.text))


    @classmethod   #所有的用例执行完之后才会执行此类方法
    def tearDownClass(cls):
        logger.get_logger(__name__).info('准备测试后置')
        cls.http_test.close()
        cls.mysql.close()
        print("用例执行完毕")

    # def tearDown(self):
    #     self.mysql.close()
Exemplo n.º 7
0
class investTest(unittest.TestCase):
    logger = logger.get_logger(__name__)

    @classmethod
    def setUpClass(cls):
        logger.get_logger(__name__).info('准备测试前置')
        cls.http_test = http_request.HTTPRequest2()
        cls.mysql = do_mysql.DoMysql()

    #读取测试用例
    do_Myexcel = DoExcel(contants.case_file, 'invest')
    cases = do_Myexcel.get_cases()

    @data(*cases)  # 装饰方法
    def test_invest(self, case):
        self.logger.info('开始测试:{0}'.format(case.title))
        # 在请求之前替换参数化的值
        case.data = context.replace(case.data)
        resp = self.http_test.request(case.method, case.url, case.data)
        actual_code = resp.json()['code']
        try:
            self.assertEqual(str(case.expected), actual_code)
            #self.assertEqual(case.expected, resp.text)
            self.do_Myexcel.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)['id']
                print('标的ID', loan_id)
                #保存到类属性里面
                setattr(Context, 'loan_id', str(loan_id))
        except AssertionError as e:
            self.do_Myexcel.write_result(case.case_id + 1, resp.text, 'FAIL')
            self.logger.error('报错了,{0}'.format(e))
            raise e
        self.logger.info('结束测试:{0}'.format(resp.text))

    @classmethod  # 所有的用例执行完之后才会执行此类方法
    def tearDownClass(cls):
        logger.get_logger(__name__).info('准备测试后置')
        cls.http_test.close()
        cls.mysql.close()
        print("用例执行完毕")
Exemplo n.º 8
0
 def setUpClass(cls):
     logger.get_logger(__name__).info('准备测试前置')
     cls.http_test = http_request.HTTPRequest2()
     cls.mysql = do_mysql.DoMysql()