예제 #1
0
class BindCard(unittest.TestCase):
    excel = DoExcel(constant.excel_dir, 'bindcard')
    cases = excel.read_excel()

    @classmethod
    def setUpClass(cls):
        cls.WS = WebService()
        cls.cf = DoConf(constant.globe_conf_dir)
        cls.log = LogTools(__name__)
        cls.log.mylog.info("开始测试")

    @data(*cases)
    def test_BindCard(self, case):
        self.log.mylog.info("当前执行的用例名称是:{}".format(case.title))
        case_data = eval(context.param_replace(case.data))
        resp = self.WS.web_services(case.url, case_data, case.method)
        try:
            global result
            self.assertEqual(case.expected, resp)
            result = "pass"
        except AssertionError as e:
            result = "fail"
            raise e
        finally:
            self.log.mylog.info("当前执行的用例执情况:{}".format(result))
            self.excel.write_excel(case.case_id, str(resp), result)

    @classmethod
    def tearDownClass(cls):
        cls.log.mylog.info("结束测试")
예제 #2
0
class TestLogin(unittest.TestCase):
    excel = DoExcel(constant.excel_dir, 'login')
    cases = excel.read_excel()

    @classmethod
    def setUpClass(cls):
        cls.resp = Request()
        cls.conf = DoConf(constant.globe_conf_dir)

    @data(*cases)
    def test_login(self, case):
        LogTools().info("当前执行的用例名称是:{}".format(case.title))
        case_data = context.param_replace(case.data)
        url = 'http://' + self.conf.get_value('dev_info', 'domain_name') + self.conf.get_value('dev_info',
                                                                                               'path') + case.url
        res = self.resp.http_request(case.method, url, case_data, headers=case.headers)
        LogTools().info("响应信息是:{}".format(res.text))
        try:
            self.assertEqual(case.expected, res.text)
            result = 'pass'
        except Exception as e:
            result = 'fail'
            raise e
        finally:
            LogTools().info("响应结果是:{}".format(result))
            self.excel.write_excel(case.case_id, res.text, result)

    @classmethod
    def tearDownClass(cls):
        cls.resp.close()
예제 #3
0
class TestAddBd(unittest.TestCase):
    excel = DoExcel(constant.excel_dir, 'add_biao')
    cases = excel.read_excel()

    @classmethod
    def setUpClass(cls):
        cls.resp = Request()
        cls.conf = DoConf(constant.globe_conf_dir)
        cls.con = DoMysql()

    @data(*cases)
    def test_add_bd(self, case):
        LogTools().info("当前执行的用例名称是:{}".format(case.title))
        case_data = context.param_replace(case.data)
        if case.check_sql:
            case_check_sql = context.param_replace(
                eval(case.check_sql)['sql1'])
            begin_count = self.con.read_fetchone(case_check_sql)['COUNT(*)']
            print(begin_count)
        url = 'http://' + self.conf.get_value(
            'dev_info', 'domain_name') + self.conf.get_value(
                'dev_info', 'path') + case.url
        res = self.resp.http_request(case.method,
                                     url,
                                     case_data,
                                     headers=case.headers)
        LogTools().info("响应信息是:{}".format(res.text))
        try:
            if res.json()['msg'] == '加标成功':
                new_count = self.con.read_fetchone(
                    context.param_replace(eval(
                        case.check_sql)['sql1']))['COUNT(*)']
                print(new_count)
                self.assertNotEqual(begin_count, new_count)
                #取借款用户所投标记录中的最大ID,并通过反射存在context类中,每投标成功一次覆盖context类中的load_id属性
                case_check_sql1 = context.param_replace(
                    eval(case.check_sql)['sql2'])
                load_id_value = self.con.read_fetchone(
                    case_check_sql1)['max(id)']
                setattr(context.Context, 'load_id', str(load_id_value))
            else:
                self.assertEqual(case.expected, res.text)
            result = 'pass'
        except Exception as e:
            result = 'fail'
            raise e
        finally:
            LogTools().info("响应结果是:{}".format(result))
            self.excel.write_excel(case.case_id, res.text, result)

    @classmethod
    def tearDownClass(cls):
        cls.resp.close()
        cls.con.close()
예제 #4
0
class TestRecharge(unittest.TestCase):
    excel = DoExcel(constant.excel_dir, 'recharge')
    cases = excel.read_excel()

    @classmethod
    def setUpClass(cls):
        cls.resp = Request()
        cls.conf = DoConf(constant.globe_conf_dir)
        cls.con = DoMysql()

    @data(*cases)
    def test_recharge(self, case):
        LogTools().info("当前执行的用例名称是:{}".format(case.title))
        case_data = context.param_replace(case.data)
        if case.check_sql:
            case.check_sql = context.param_replace(case.check_sql)
            begin_balance = self.con.read_fetchone(
                case.check_sql)['leaveamount']
            print(begin_balance)
        url = 'http://' + self.conf.get_value(
            'dev_info', 'domain_name') + self.conf.get_value(
                'dev_info', 'path') + case.url
        res = self.resp.http_request(case.method,
                                     url,
                                     case_data,
                                     headers=case.headers)
        LogTools().info("响应信息是:{}".format(res.text))
        try:
            if res.json()['msg'] == '充值成功':
                new_balance = self.con.read_fetchone(
                    case.check_sql)['leaveamount']
                print(new_balance)
                self.assertEqual(
                    int(begin_balance) + eval(case_data)['amount'],
                    int(new_balance))
            else:
                self.assertEqual(case.expected, res.text)
            result = 'pass'
        except Exception as e:
            result = 'fail'
            raise e
        finally:
            LogTools().info("响应结果是:{}".format(result))
            self.excel.write_excel(case.case_id, res.text, result)
예제 #5
0
class TestAudit(unittest.TestCase):
    excel = DoExcel(constant.excel_dir, 'audit')
    cases = excel.read_excel()

    @classmethod
    def setUpClass(cls):
        cls.resp = Request()
        cls.conf = DoConf(constant.globe_conf_dir)
        cls.con = DoMysql()

    @data(*cases)
    def test_audit(self, case):
        LogTools().info("当前执行的用例名称是:{}".format(case.title))
        case_data = context.param_replace(case.data)
        if case.check_sql:
            case.check_sql = context.param_replace(case.check_sql)
            begin_status = self.con.read_fetchone(case.check_sql)['status']
            print(begin_status)
        url = 'http://' + self.conf.get_value(
            'dev_info', 'domain_name') + self.conf.get_value(
                'dev_info', 'path') + case.url
        res = self.resp.http_request(case.method,
                                     url,
                                     case_data,
                                     headers=case.headers)
        LogTools().info("响应信息是:{}".format(res.text))
        try:
            if res.json()['code'] == "10001" and res.json(
            )['status'] == 1 and res.json()['msg'] != "登录成功":
                new_status = self.con.read_fetchone(case.check_sql)
                print(new_status)
                self.assertNotEqual(begin_status, new_status['status'])
                result = 'pass'
                setattr(context.Context, 'load_id', str(new_status['id']))
            else:
                self.assertEqual(case.expected, res.text)
                result = 'pass'
        except AssertionError as e:
            result = 'fail'
            raise e
        finally:
            LogTools().info("响应结果是:{}".format(result))
            self.excel.write_excel(case.case_id, res.text, result)
예제 #6
0
class UserAuth(unittest.TestCase):
    excel = DoExcel(constant.excel_dir, 'userauth')
    cases = excel.read_excel()

    @classmethod
    def setUpClass(cls):
        cls.WS = WebService()
        cls.sql = DoMysql("dbName1")
        cls.cf = DoConf(constant.globe_conf_dir)
        cls.log = LogTools(__name__)
        cls.log.mylog.info("开始测试")
        setattr(context.Context, "cre_id",
                IdNumber.generate_id(random.randint(0, 1)))

    @data(*cases)
    def test_UserAuth(self, case):
        self.log.mylog.info("当前执行的用例名称是:{}".format(case.title))

        if case.check_sql:
            global count
            count = self.sql.read_fetchone(case.check_sql)["count(*)"]
        case_data = eval(context.param_replace(case.data))
        resp = self.WS.web_services(case.url, case_data, case.method)
        try:
            global result
            self.assertEqual(case.expected, resp)
            if resp == "ok":
                new_count = self.sql.read_fetchone(case.check_sql)["count(*)"]
                self.assertEqual(count, new_count - 1)
            result = "pass"
        except AssertionError as e:
            result = "fail"
            raise e
        finally:
            self.log.mylog.info("当前执行的用例执情况:{}".format(result))
            self.excel.write_excel(case.case_id, str(resp), result)

    @classmethod
    def tearDownClass(cls):
        cls.sql.close()
        cls.log.mylog.info("结束测试")
예제 #7
0
class Register(unittest.TestCase):
    excel = DoExcel(constant.excel_dir, 'register')
    cases = excel.read_excel()

    @classmethod
    def setUpClass(cls):
        cls.WS = WebService()
        cls.con = DoMysql("dbName1")
        cls.cf = DoConf(constant.globe_conf_dir)
        cls.log = LogTools(__name__)
        cls.log.mylog.info("开始测试")
        setattr(context.Context, "user_id", context.create_name())

    @data(*cases)
    def test_Register(self, case):
        self.log.mylog.info("当前执行的用例名称是:{}".format(case.title))
        case_data = eval(context.param_replace(case.data))
        resp = self.WS.web_services(case.url, case_data, case.method)
        try:
            global result
            self.assertEqual(case.expected, resp)
            if resp == "ok":
                sql_result = self.con.read_fetchone(
                    context.param_replace(case.check_sql))
                uid = str(sql_result["Fuid"])
                # 把验证码反射到context中的Context类
                setattr(context.Context, "uid", uid)
            result = "pass"
        except AssertionError as e:
            result = "fail"
            raise e
        finally:
            self.log.mylog.info("当前执行的用例执情况:{}".format(result))
            self.excel.write_excel(case.case_id, str(resp), result)

    @classmethod
    def tearDownClass(cls):
        cls.con.close()
        cls.log.mylog.info("结束测试")
예제 #8
0
class TestRegister(unittest.TestCase):
    excel = DoExcel(constant.excel_dir, 'register')
    cases = excel.read_excel()

    @classmethod
    def setUpClass(cls):
        cls.resp = Request()
        cls.con = DoMysql()
        cls.conf = DoConf(constant.globe_conf_dir)
        cls.log = LogTools(__name__)

    @data(*cases)
    def test_register(self, case):
        # self.log.info("当前执行的用例名称是:{}".format(case.title))
        self.log.mylog.info("当前执行的用例名称是:{}".format(case.title))
        case_data = eval(context.param_replace(case.data))

        if case.check_sql:
            case_check_sql = context.param_replace(case.check_sql)
            sql_result = self.con.read_fetchone(case_check_sql)
            mobile_param1 = int(sql_result['mobilephone']) + random.randint(
                1, 99)  # 原先的手机号加一个随机数
            case_data['mobilephone'] = str(mobile_param1)  # 替换字典中的key

        url = 'http://' + self.conf.get_value(
            'dev_info', 'domain_name') + self.conf.get_value(
                'dev_info', 'path') + case.url
        res = self.resp.http_request(case.method,
                                     url,
                                     case_data,
                                     headers=case.headers)
        # self.log.info("响应信息是:{}".format(res.text))
        self.log.mylog.info("响应信息是:{}".format(res.text))
        try:
            if res.json()['msg'] == '注册成功':
                sql = 'select MobilePhone from member where MobilePhone = ' + case_data[
                    'mobilephone']
                mobile_param2 = self.con.read_fetchone(sql)['MobilePhone']
                if mobile_param2 != self.conf.get_value(
                        'data', 'mobile'):  # 判断是否是原始登录手机号
                    sql = 'select MobilePhone from member where MobilePhone = ' + mobile_param2
                    query_mobile = self.con.read_fetchone(sql)
                    self.assertEqual(mobile_param2,
                                     query_mobile['MobilePhone'])  # 第二次注册判断
                    result = 'pass'
                else:
                    query_mobile = self.con.read_fetchone(sql)
                    self.assertEqual(case_data['mobilephone'],
                                     query_mobile['MobilePhone'])  # 第一次注册判断
                    result = 'pass'
                sql2 = 'select * from member where MobilePhone =' + case_data[
                    'mobilephone']
                member_id = str(self.con.read_fetchone(sql2)['id'])
                mobile_phone = str(self.con.read_fetchone(sql2)['mobilephone'])
                #把用户信息反射到context类,然后供后面的测试用例调用
                # mobile_pwd = str(self.con.read_fetchone(sql2)['pwd'])
                setattr(context.Context, 'member_id', member_id)
                setattr(context.Context, 'mobile_phone', mobile_phone)
                # setattr(context.Context, 'mobile_pwd', mobile_pwd)
            else:
                self.assertEqual(case.expected, res.text)
            result = 'pass'
        except AssertionError as e:
            result = 'fail'
            raise e
        finally:
            # self.log.info("响应结果是:{}".format(result))
            self.log.mylog.info("响应结果是:{}".format(result))
            self.excel.write_excel(case.case_id, res.text, result)

    @classmethod
    def tearDownClass(cls):
        cls.resp.close()
        cls.con.close()