Пример #1
0
class TestRegister(unittest.TestCase):

    logger.info('开始执行TestRegister测试类')

    testdata = DoExcel(contants.case_file, 'register').read_data()

    @classmethod
    def setUpClass(cls):
        cls.session = HttpRequest2()
        cls.mysql = DoMysql()

    @data(*testdata)
    def testRegister(self, case):

        #将注册手机号在Excel中参数化,方式一:使用字符串替换
        # if case.data.find('register_phone') > -1:
        #     #如果在case.data中找到register_phone,就去数据库找到最大的手机号并+1。
        #     max_phone = self.mysql.fetch_one('select max(mobilephone) from member')[0]#如果返回数据是元组,用索引取值
        #     max_phone = int(max_phone)+1
        #     #把case.data字符串中的register_phone替换为重新赋值的最大手机号,
        #     #replace方法是替换之后返回一个新的字符串,所有要重新定义变量去接收
        #     case.data = case.data.replace('register_phone',str(max_phone))

        #方式二:使用字典的方式,给字典的key重新赋值
        case.data = eval(case.data)
        if case.data.__contains__('mobilephone') and case.data[
                'mobilephone'] == 'register_phone':
            max_phone = self.mysql.fetch_one(
                'select max(mobilephone) from future.member')[
                    'max(mobilephone)']  #返回数据是字典,用key取值
            max_phone = int(max_phone) + 1
            case.data['mobilephone'] = max_phone
class TestUserAuth(unittest.TestCase):

    testdata = DoExcel(case_file,'verifiedUserAuth').read_data()

    @classmethod
    def setUpClass(cls):
        cls.excel = DoExcel(case_file, 'verifiedUserAuth')
        cls.mysql = DoMysql()

    @data(*testdata)
    def testUserAuth(self,case):

        case.data = eval(case.data)

        if case.data.__contains__("mobile") and case.data["mobile"] == "register_phone":
            max_phone = self.mysql.fetch_one('select max(Fmobile_no) from sms_db_25.t_mvcode_info_5;')['max(Fmobile_no)']
            max_phone = int(max_phone) + 1000
            case.data["mobile"] = max_phone
            setattr(Context,'register_phone', str(max_phone))
        cls.mysql = DoMysql()

    @data(*testdata)
    def testBindCard(self, case):

        case.data = eval(case.data)

        if case.data.__contains__(
                "mobile") and case.data["mobile"] == "register_phone":
            max_phone = self.mysql.fetch_one(
                'select max(Fmobile_no) from sms_db_25.t_mvcode_info_5;'
            )['max(Fmobile_no)']
            max_phone = int(max_phone) + 1000
            case.data["mobile"] = max_phone
            setattr(Context, 'register_phone', str(max_phone))
        elif case.data.__contains__(
                "user_id") and case.data["user_id"] == "name":
            name = RandomCreate().create_name()
            case.data["user_id"] = name
            setattr(Context, 'name', name)
        if case.title == '正常发送验证码':
            logger.info('执行用例是:{},请求url是:{},请求数据是:{}'.format(
                case.title, case.url, case.data))
            res = Request('sendMCode').request(case.url, case.data)
            try:
                self.assertEqual(res['retInfo'],
                                 eval(case.expected)['retInfo'])
                self.excel.write_data(case.case_id + 1, str(res), 'pass')
                if res['retCode'] == '0' and res['retInfo'] == 'ok':
                    case.sql = Context().replace(case.sql)
                    verify_code = self.mysql.fetch_one(
                        case.sql)['Fverify_code']