class TestApprove(unittest.TestCase):
    def setUp(self) -> None:

        self.session = requests.session()
        self.login = ApiRegLogin(self.session)
        self.approve = Approve(self.session)

    def tearDown(self) -> None:
        logger.info("正在关闭session对象")
        # 关闭session对象
        self.session.close()

    def test01_approve(self):
        self.login.login("13600001111", "q123456")
        r = self.approve.api_approve("张三", "362322199512036344")

        try:
            common_assert(self, r, status_code=200)
        except Exception as e:
            logger.error(e)
            raise

    def test02_approve_info(self):
        self.login.login("13600001111", "q123456")
        r = self.approve.api_approve_info()

        try:
            common_assert(self, r, status=None)
        except Exception as e:
            logger.error(e)
            raise
class TestTrust(unittest.TestCase):
    def setUp(self) -> None:
        # 获取session对象
        self.session = requests.session()
        # 获取ApiRegLogin对象
        self.login = ApiRegLogin(self.session)
        self.trust = ApiTrust(self.session)
        # 登录
        self.login.login("13600001111", "q123456")

    def tearDown(self) -> None:
        logger.info("正在关闭session对象")
        # 关闭session对象
        self.session.close()

    def test01_trust(self):

        r = self.trust.api_trust()
        logger.info("开户结果:{}".format(r.text))
        try:
            common_assert(self, r)
        except Exception as e:
            logger.error(e)
            raise

        # 调用第三方开户
        result = parser_html(r)
        logger.info("解析开户数据结果为:{}".format(result))
        r = self.session.post(url=result[0], data=result[1])
        print("三方开户结果为:", r.text)
        logger.info("三方开户结果为:{}".format(r.text))
        self.assertIn("OK", r.text)

    def test02_recharge(self):

        r = self.trust.api_recharge_code()
        logger.info("获取充值验证码结果:{}".format(r.status_code))

        r = self.trust.api_recharge(100, 8888)
        print("充值结果", r.text)
        # 调用第三方充值
        result = parser_html(r)
        logger.info("解析充值数据结果为:{}".format(result))
        r = self.session.post(url=result[0], data=result[1])
        print("三方充值结果为:", r.text)
        logger.info("三方充值结果为:{}".format(r.text))
        self.assertIn("OK", r.text)
Exemple #3
0
class TestRegLogin(unittest.TestCase):
    # 初始化
    def setUp(self) -> None:
        # 获取session对象
        self.session = requests.session()
        logger.info("正在获取session对象:{}".format(self.session))
        # 获取ApiRegLogin对象
        self.api = ApiRegLogin(self.session)
        logger.info("正在获取ApiRegLogin对象:{}".format(self.api))

    # 结束
    def tearDown(self) -> None:
        logger.info("正在关闭session对象")
        # 关闭session对象
        self.session.close()

    # 1.注册图片验证码 测试方法

    def test01_img_code(self):
        # 调用图片验证码接口
        r = self.api.reg_img_code(random.random())
        # 断言 响应200
        print("响应状态码:", r.status_code)
        try:
            self.assertEqual(200, r.status_code)
        except Exception as e:
            logger.error(e)
            raise

    # 2. 注册 短信验证码
    def test02_sms_code(self):
        # 1. 获取图片验证码 目的: 使用session对象自动记录cookie
        self.api.reg_img_code(random.random())
        # 2. 获取短信验证码
        r = self.api.reg_sms_code(phone, verifycode)
        print("获取短信验证码 结果为: ", r.json())
        try:
            # 调用断言方法
            common_assert(self, r, description="发送成功")
        except Exception as e:
            logger.error(e)
            raise

    # 3. 注册 测试方法
    def test03_reg(self):
        # 1. 获取图片验证码
        self.api.reg_img_code(random.random())
        # 2. 获取短信验证码
        self.api.reg_sms_code(phone, verifycode)
        # 3. 调用注册接口
        r = self.api.reg(phone, password, verifycode, phone_code, invite_phone)
        print("响应状态码:", r.json())
        try:
            # 4. 断言注册信息
            common_assert(self, r, description="注册成功")
        except Exception as e:
            logger.error(e)
            raise

    # 4. 登录 测试方法
    def test04_login(self):
        r = self.api.login(phone, password)

        print("登录结果:", r.json())
        try:
            # 4. 断言登录信息
            common_assert(self, r, description="登录成功")
        except Exception as e:
            logger.error(e)
            raise

    # 5. 是否登录 测试方法
    def test05_is_login(self):
        # 1.调用登录
        self.api.login(phone, password)
        # 2.判断是否登录
        r = self.api.islogin()
        print("登录查询结果:", r.json())
        try:
            common_assert(self, r, description="OK")
        except Exception as e:
            logger.error(e)
            raise

    """逆向  注册图片验证码"""

    # 6. 逆向-注册图片验证码--(随机整数)
    def test06_img_code(self):
        # 调用图片验证码接口
        r = self.api.reg_img_code(random.randint(1, 999999999999))
        # 断言 响应200
        print("响应状态码:", r.status_code)
        try:
            common_assert(self, r, status=None)
        except Exception as e:
            logger.error(e)
            raise

    # 7. 逆向-注册图片验证码--(随机数为空)
    def test07_img_code(self):
        # 调用图片验证码接口
        num = ""
        r = self.api.reg_img_code(num)
        # 断言 响应404
        print("响应状态码:", r.status_code)
        try:
            common_assert(self, r, status_code=404, status=None)
        except Exception as e:
            logger.error(e)
            raise

    # 8. 逆向-注册图片验证码--(随机数为字符串)
    def test08_img_code(self):
        # 调用图片验证码接口
        num = random.sample("asfdfsgttegfgdgsf", 6)
        r = self.api.reg_img_code("".join(num))
        # 断言 响应404
        print("响应状态码:", r.status_code)
        try:
            self.assertEqual(400, r.status_code)
        except Exception as e:
            logger.error(e)
            raise

    """逆向  注册短信验证码"""

    # 9. 注册 短信验证码 手机号为空
    def test09_sms_code_phone_null(self):
        phone = ""
        # 1. 获取图片验证码 目的: 使用session对象自动记录cookie
        self.api.reg_img_code(random.random())
        # 2. 获取短信验证码
        r = self.api.reg_sms_code(phone, verifycode)
        print("获取短信验证码 结果为: ", r.json())
        try:
            # 调用断言方法
            common_assert(self, r, status=100)
        except Exception as e:
            logger.error(e)
            raise

    # 9. 注册 短信验证码 验证码为空
    def test10_sms_code_code_null(self):
        verifycode = ""
        # 1. 获取图片验证码 目的: 使用session对象自动记录cookie
        self.api.reg_img_code(random.random())
        # 2. 获取短信验证码
        r = self.api.reg_sms_code(phone, verifycode)
        print("获取短信验证码 结果为: ", r.json())
        try:
            # 调用断言方法
            common_assert(self, r, status=100, description="图片验证码错误")
        except Exception as e:
            logger.error(e)
            raise

    # 10. 注册 短信验证码 验证码错误
    def test11_sms_code_verify_null(self):
        verifycode = "8889"
        # 1. 获取图片验证码 目的: 使用session对象自动记录cookie
        self.api.reg_img_code(random.random())
        # 2. 获取短信验证码
        r = self.api.reg_sms_code(phone, verifycode)
        print("获取短信验证码 结果为: ", r.json())
        try:
            # 调用断言方法
            common_assert(self, r, status=100, description="图片验证码错误")
        except Exception as e:
            logger.error(e)
            raise

    # 11. 注册 短信验证码 不请求获取图片验证码
    def test12_sms_code_(self):
        # 2. 获取短信验证码
        r = self.api.reg_sms_code(phone, verifycode)
        logger.info("不请求获取图片验证码 响应数据为:{}".format(r.json()))
        print("不请求获取图片验证码 结果为: ", r.json())
        try:
            # 调用断言方法
            common_assert(self, r, status=100, description="图片验证码错误")
        except Exception as e:
            logger.error(e)
            raise

    """注册  逆向"""

    # 3. 注册 测试方法  所有参数
    def test13_register_all_params(self):
        # 1. 获取图片验证码
        self.api.reg_img_code(random.random())
        # 2. 获取短信验证码
        self.api.reg_sms_code(phone1, verifycode)
        # 3. 调用注册接口
        r = self.api.reg(phone1, password, verifycode, phone_code,
                         invite_phone, dy_server)
        print(r.json())
        try:
            # 4. 断言注册信息
            common_assert(self, r, status=200, description="注册成功")
        except Exception as e:
            logger.error(e)
            raise

    # 3. 注册 测试方法  图片验证码错误
    def test14_reg_img_code_err(self):
        verifycode = "8899"
        # 1. 获取图片验证码
        self.api.reg_img_code(random.random())
        # 2. 获取短信验证码
        self.api.reg_sms_code(phone, verifycode)
        # 3. 调用注册接口
        r = self.api.reg(phone, password, verifycode, phone_code, invite_phone,
                         dy_server)
        print(r.json())
        try:
            # 4. 断言注册信息
            common_assert(self, r, status=100, description="验证码错误")
        except Exception as e:
            logger.error(e)
            raise

    # 3. 注册 测试方法  短信验证码错误
    def test15_reg_img_code_err(self):

        phone_code = "8899"
        # 1. 获取图片验证码
        self.api.reg_img_code(random.random())
        # 2. 获取短信验证码
        self.api.reg_sms_code(phone, verifycode)
        # 3. 调用注册接口
        r = self.api.reg(phone8, password, verifycode, phone_code,
                         invite_phone, dy_server)
        print(r.json())
        try:
            # 4. 断言注册信息
            common_assert(self, r, status=100, description="验证码错误")
        except Exception as e:
            logger.error(e)
            raise

    # 3. 注册 测试方法  手机号存在
    def test16_reg_img_code_err(self):
        phone = "13700041117"
        # 1. 获取图片验证码
        self.api.reg_img_code(random.random())
        # 2. 获取短信验证码
        self.api.reg_sms_code(phone, verifycode)
        # 3. 调用注册接口
        r = self.api.reg(phone, password, verifycode, phone_code, invite_phone,
                         dy_server)
        print(r.json())
        try:
            # 4. 断言注册信息
            common_assert(self, r, status=100, description="手机已存在")
        except Exception as e:
            logger.error(e)
            raise

    # 3. 注册 测试方法  密码为空 ---bug
    def test17_reg_img_code_err(self):
        password = ""
        # 1. 获取图片验证码
        self.api.reg_img_code(random.random())
        # 2. 获取短信验证码
        self.api.reg_sms_code(phone, verifycode)
        # 3. 调用注册接口
        r = self.api.reg(phone, password, verifycode, phone_code, invite_phone,
                         dy_server)
        print(r.json())
        try:
            # 4. 断言注册信息
            common_assert(self, r, status=100, description="密码不能为空")
        except Exception as e:
            logger.error(e)
            raise

    # 3. 注册 测试方法  未同意协议 --bug
    def test18_reg_img_code_err(self):
        dy_server = "off"
        # 1. 获取图片验证码
        self.api.reg_img_code(random.random())
        # 2. 获取短信验证码
        self.api.reg_sms_code(phone, verifycode)
        # 3. 调用注册接口
        r = self.api.reg(phone, password, verifycode, phone_code, invite_phone,
                         dy_server)

        print(r.json())
        try:
            # 4. 断言注册信息
            common_assert(self, r, status=100, description="同意")
        except Exception as e:
            logger.error(e)
            raise

    """登录   逆向"""

    # 4. 登录 测试方法  用户不存在
    def test19_login(self):
        phone = "134220000"
        r = self.api.login(phone, password)

        print("登录结果:", r.json())
        try:
            # 4. 断言登录信息
            common_assert(self, r, status=100, description="用户不存在")
        except Exception as e:
            logger.error(e)
            raise

    # 4. 登录 测试方法  密码为空
    def test20_login(self):
        password = ""
        r = self.api.login(phone, password)

        print("登录结果:", r.json())
        try:
            # 4. 断言登录信息
            common_assert(self, r, status=100, description="密码不能为空")
        except Exception as e:
            logger.error(e)
            raise

    # 4. 登录 测试方法  密码错误次数
    def test21_login_pwd_err_verify(self):
        password = "******"
        r = self.api.login(phone, password)
        r = self.api.login(phone, password)
        r = self.api.login(phone, password)
        common_assert(self, r, status=100, description="锁定")
        print("登录结果:", r.json())
        logger.info("登录.密码错误1-3次结果:{}".format(r.json()))
        print("暂停60秒.....")
        sleep(60)
        self.api.login(phone, password="******")
        try:
            # 4. 断言登录信息
            common_assert(self, r, status=200, description="登录成功")
        except Exception as e:
            logger.error(e)
            raise

    # 5. 登录 测试方法  未登录
    def test22_is_not_login(self):
        # 2.判断是否登录
        r = self.api.islogin()

        try:
            # 4. 断言登录信息
            common_assert(self, r, status=250, description="您未登陆")
        except Exception as e:
            logger.error(e)
            raise
Exemple #4
0
class TestLoanFlow(unittest.TestCase):
    def setUp(self) -> None:
        # 清除数据
        DBUtil.mysql_conn()
        # 获取session对象
        self.session = requests.session()
        # 获取ApiRegLogin对象
        self.api_reglog = ApiRegLogin(self.session)
        self.approve = Approve(self.session)
        self.trust = ApiTrust(self.session)
        self.loan = Loan(self.session)

    def tearDown(self) -> None:
        logger.info("正在关闭session对象")
        # 关闭session对象
        self.session.close()
        # DBUtil.mysql_conn()

    def test01(self):
        # 1. 获取图片验证码
        r = self.api_reglog.reg_img_code(random.random())
        try:
            self.assertEqual(200, r.status_code)
        except Exception as e:
            logger.error(e)
            raise
        # 2. 获取短信验证码
        self.api_reglog.reg_sms_code(phone,imgVerifycode,type=type)
        # 3. 调用注册接口
        self.api_reglog.reg(phone,
                     password,
                     imgVerifycode,
                     phone_code,
                     dy_server,
                     invite_phone)
        # 4. 登录
        self.api_reglog.login(phone, password)
        # 5.判断是否登录
        self.api_reglog.islogin()
        # 6.认证
        self.approve.api_approve("张三", "362322199512036344")
        # 7.查询认证信息
        self.approve.api_approve_info()
        # 8.开户
        r =self.trust.api_trust()
        # 9.调用第三方开户
        result = parser_html(r)
        logger.info("解析开户数据结果为:{}".format(result))
        r = self.session.post(url=result[0], data=result[1])
        print("三方开户结果为:", r.text)
        logger.info("三方开户结果为:{}".format(r.text))
        self.assertIn("OK", r.text)

        # 10.充值,第三方充值
        r = self.trust.api_recharge_code()
        logger.info("获取充值验证码结果:{}".format(r.status_code))

        r = self.trust.api_recharge(100, 8888)
        print("充值结果", r.json())
        # 调用第三方充值
        result = parser_html(r)
        logger.info("解析充值数据结果为:{}".format(result))
        r = self.session.post(url=result[0], data=result[1])
        print("三方充值结果为:", r.text)
        logger.info("三方充值结果为:{}".format(r.text))
        self.assertIn("OK", r.text)

        # 11.调用投资
        self.loan.api_loan_info(id)
        # 12.第三方投资
        r = self.loan.api_tender(id, amount)
        logger.info("投资结果:{}".format(r.json()))

        print("投资结果", r.json())
        # 调用第三方投资
        result = parser_html(r)
        logger.info("解析投资数据结果为:{}".format(result))
        r = self.session.post(url=result[0], data=result[1])
        print("三方投资结果为:", r.text)
        logger.info("三方投资结果为:{}".format(r.text))

        try:
            self.assertIn("OK", r.text)
        except Exception as e:
            logger.error(e)
            raise
class TestRegLogin(unittest.TestCase):
    # 初始化
    def setUp(self) -> None:
        # 获取session对象
        self.session = requests.session()
        logger.info("正在获取session对象:{}".format(self.session))
        # 获取ApiRegLogin对象
        self.api = ApiRegLogin(self.session)
        logger.info("正在获取ApiRegLogin对象:{}".format(self.api))

    # 结束
    def tearDown(self) -> None:
        logger.info("正在关闭session对象")
        # 关闭session对象
        self.session.close()

    # 1.注册图片验证码 测试方法
    @parameterized.expand(read_json("register_login.json","img_code_case"))
    def test01_img_code(self,random,expect_code):
        # 调用图片验证码接口
        r = self.api.reg_img_code(random)
        # 断言 响应200
        print("响应状态码:", r.status_code)
        try:
            self.assertEqual(expect_code, r.status_code)
        except Exception as e:
            logger.error(e)
            raise

    # 2. 注册 短信验证码
    @parameterized.expand(read_json("register_login.json", "sms_code_case"))
    def test02_sms_code(self,phone,imgverifycode,type,expect_code,expect_status,description):
        # 1. 获取图片验证码 目的: 使用session对象自动记录cookie
        self.api.reg_img_code(random.random())
        # 2. 获取短信验证码
        r = self.api.reg_sms_code(phone,imgverifycode,type=type)
        print("获取短信验证码 结果为: ", r.json())
        try:
            # 调用断言方法
            common_assert(self, r,status_code=expect_code,status=expect_status, description=description)
        except Exception as e:
            logger.error(e)
            raise

    # 3. 注册 测试方法
    @parameterized.expand(read_json("register_login.json", "reg_case"))
    def test03_reg(self,phone4,password,imgVerifyCode,phone_code,dy_server,invite_phone,expect_code,status,description):
        # 1. 获取图片验证码
        self.api.reg_img_code(random.random())
        # 2. 获取短信验证码
        self.api.reg_sms_code(phone4, imgVerifyCode)
        # 3. 调用注册接口
        r = self.api.reg(phone4,
                         password,
                         imgVerifyCode,
                         phone_code,
                         dy_server,
                         invite_phone)
        print("响应状态码:", r.json())
        logger.info("请求数据:{} 响应结果:{}".format(
            (phone4, password, imgVerifyCode, phone_code, dy_server, invite_phone, expect_code, status,
             description), r.json()))
        try:
            # 4. 断言注册信息
            common_assert(self, r,status_code=expect_code,status=status,description=description)
        except Exception as e:
            logger.error(e)
            raise

    # 4. 登录 测试方法
    @parameterized.expand(read_json("register_login.json", "login_case"))
    def test04_login(self,keywords, password, expect_code):
        r = self.api.login(keywords, password)
        logger.info("请求数据:{} 响应数据:{}".format((keywords, password, expect_code), r.json()))

        print("登录结果:", r.json())
        if "error" in password:
            logger.info("锁定60验证...")
            r = self.api.login(keywords, password)
            logger.info("请求数据:{} 响应数据:{}".format((keywords, password, expect_code), r.json()))
            print("登陆结果:", r.json())

            r = self.api.login(keywords, password)
            logger.info("请求数据:{} 响应数据:{}".format((keywords, password, expect_code), r.json()))
            print("登陆结果:", r.json())

            time.sleep(60)
            r = self.api.login("13600001111", "q123456")
            logger.info("请求数据:{} 响应数据:{}".format((keywords, password, expect_code), r.json()))
            print("登陆结果:", r.json())
        try:
            # 4. 断言登录信息
            common_assert(self, r, status_code=expect_code)
        except Exception as e:
            logger.error(e)
            raise

    # 5. 是否登录 测试方法
    @parameterized.expand(read_json("register_login.json", "islogin_case"))
    def test05_is_login(self,phone4,password,expect_code):
        # 1.调用登录
        self.api.login(phone4, password)
        # 2.判断是否登录
        r = self.api.islogin()
        print("登录查询结果:", r.json())
        logger.info("请求数据:{} 执行结果:{}".format((phone4, password, expect_code), r.json()))
        try:
            common_assert(self, r, status=expect_code)
        except Exception as e:
            logger.error(e)
            raise