示例#1
0
 def setUp(self) -> None:
     # 获取session对象 a01
     self.session = requests.session()
     log.info("正在获取session对象:{}".format(self.session))
     # 获取ApiRegLogin对象
     self.api = ApiRegLogin(self.session)
     log.info("正在获取ApiRegLogin对象: {}".format(self.api))
示例#2
0
 def setUp(self) -> None:
     # 获取session对象
     self.session = requests.session()
     # 获取ApiRegLogin对象
     self.login = ApiRegLogin(self.session)
     # 获取ApiApprove对象
     self.api = ApiApprove(self.session)
示例#3
0
 def setUp(self) -> None:
     # 1. 获取session
     self.session = requests.session()
     # 2. 获取ApiRegLogin对象
     self.login = ApiRegLogin(self.session)
     # 3. 获取ApiTrust对象
     self.api = ApiTrust(self.session)
     # 4. 登录
     self.login.api_login("13600001111", "q123456")
示例#4
0
class TestTrust(unittest.TestCase):
    # 初始化
    def setUp(self) -> None:
        # 1. 获取session
        self.session = requests.session()
        # 2. 获取ApiRegLogin对象
        self.login = ApiRegLogin(self.session)
        # 3. 获取ApiTrust对象
        self.api = ApiTrust(self.session)
        # 4. 登录
        self.login.api_login("13600001111", "q123456")

    # 结束
    def tearDown(self) -> None:
        # 关闭 session
        self.session.close()

    # 1. 开户测试 方法
    def test01_trust(self):
        # 1. 请求 开户
        r = self.api.api_trust()
        log.info("开户结果为:{}".format(r.json()))
        print("结果为:", r.json())
        try:
            common_assert(self, r, status=200)
        except Exception as e:
            log.error(e)
        # 2. 调用三方开户
        result = parser_html(r)
        log.info("解析开户数据结果为:{}".format(result))
        r = self.session.post(url=result[0],data=result[1])
        print("三方开户结果为:", r.text)
        log.info("三方开户的结果为:{}".format(r.text))
        self.assertIn("OK", r.text)

    # 2. 充值验证码 方法
    def test02_verify_code(self):
        r = self.api.api_recharge_verify_code(random.random())
        common_assert(self,r)

    # 3. 充值
    def test03_recharge(self):
        amount, valicode = 1000 ,8888
        # 1. 获取图片验证码
        self.api.api_recharge_verify_code(random.random())

        # 2. 调用充值接口
        self.api.api_recharge(amount,valicode)

        # 3. 调用三方充值接口
        result = parser_html(r)
        r = self.session.post(url=result[0],data=result[1])

        print("三方开户结果为:", r.text)
        log.info("三方开户的结果为:{}".format(r.text))
        self.assertIn("OK", r.text)
示例#5
0
 def setUp(self) -> None:
     # 1. session对象
     self.session = requests.session()
     # 2. 登录对象并登录方法
     ApiRegLogin(self.session).api_login("13600001111", "q123456")
     # 3. 投资接口对象
     self.api = ApiLoan(self.session)
示例#6
0
class TestApprove(unittest.TestCase):
    def setUp(self) -> None:
        # 获取session对象
        self.session = requests.session()
        # 获取ApiRegLogin对象
        self.login = ApiRegLogin(self.session)
        # 获取ApiApprove对象
        self.api = ApiApprove(self.session)

    def tearDown(self) -> None:
        # 关闭session
        self.session.close()

    # 1. 认证测试方法
    def test01_approve(self):
        realname = "张三"
        card_id = "110101199007071599"
        # 1. 登录
        self.login.api_login("13600001111", "q123456")
        # 2. 调用认证接口
        r = self.api.api_approve(realname, card_id)
        log.info("认证结果:{}".format(r.json()))
        try:
            # 3. 断言认证结果
            common_assert(self, r, status=200)
        except Exception as e:
            log.error(e)
            raise

    # 2. 认证信息测试方法 成功
    def test02_approve_info(self):
        # 1. 登录
        self.login.api_login("13600001111", "q123456")
        # 2. 调用认证信息接口
        r = self.api.api_approve_info()
        # 3. 断言
        log.info("认证信息查询结果:{}".format(r.json()))
        try:
            # 3. 断言认证结果
            common_assert(self, r)
        except Exception as e:
            log.error(e)
            raise
示例#7
0
文件: api.py 项目: LGY2008/p2p-nj03
 def api_get_ApiRegLogin(self):
     return ApiRegLogin(self.session)
示例#8
0
class TestRegLogin:
    def setup_class(self):
        log.info("正在调用清除测试数据...")
        # 清除数据
        clear_data()

    # 初始化
    def setup(self):
        # 获取session
        self.session = requests.session()
        # 实例化ApiRegLogin对象
        self.api_reg = ApiRegLogin(self.session)

    # 结束
    def teardown(self):
        # 关闭Session
        self.session.close()

    # 1、注册图片验证码 接口测试方法
    @pytest.mark.parametrize(("random", "expect_code"),
                             read_json("reg_login.json", "img_code"))
    def test01_img_code(self, random, expect_code):
        result = self.api_reg.api_get_img_code(random)
        try:
            common_assert(result, response_code=expect_code)
            log.info("断言通过,断言信息:{}".format(expect_code))
        except Exception as e:
            # 日志
            log.error(e)
            # 抛异常
            raise

    # 2、注册手机验证码 接口测试方法
    @pytest.mark.parametrize(
        ("phone", "imgVerifyCode", "response_code", "expect_msg"),
        read_json("reg_login.json", "sms_code"))
    def test02_sms_code(self, phone, imgVerifyCode, response_code, expect_msg):
        # 1、图片验证码
        self.api_reg.api_get_img_code(123234)
        # 2、调用短信验验证码
        result = self.api_reg.api_get_sms_code(phone, imgVerifyCode)
        print(result.json())
        try:
            common_assert(result, response_code=response_code)
            if expect_msg == "100":
                common_assert(result, status=expect_msg)
            else:
                common_assert(result, expect_msg=expect_msg)
                log.info("断言通过,断言信息:{}".format(expect_msg))
        except Exception as e:
            # 日志
            log.error(e)
            # 抛异常
            raise

    # 3、注册 接口测试方法
    @pytest.mark.parametrize(("phone", "password", "verifycode", "phone_code",
                              "dy_server", "invite_phone", "expect_msg"),
                             read_json("reg_login.json", "reg_data"))
    def test03_register(self, phone, password, verifycode, phone_code,
                        dy_server, invite_phone, expect_msg):
        # 1、图片验证码
        self.api_reg.api_get_img_code(123343)
        # 2、短信验证验证码
        self.api_reg.api_get_sms_code(phone, verifycode)
        # 3、注册
        result = self.api_reg.api_post_register(phone=phone,
                                                password=password,
                                                verifycode=verifycode,
                                                phone_code=phone_code,
                                                invite_phone=invite_phone)
        print("注册执行结果:", result.json())
        try:
            common_assert(result, expect_msg=expect_msg)
            log.info("断言通过,断言信息:{}".format(expect_msg))
        except Exception as e:
            # 日志
            log.error(e)
            # 抛异常
            raise

    @pytest.mark.parametrize(("keywords", "pwd", "expect_msg"),
                             read_json("reg_login.json", "login_data"))
    def test04_login(self, keywords, pwd, expect_msg):
        # 1. 判断当前执行是否为错误次数验证
        # if pwd == "error":
        #     i = 0
        #     result = None
        #     while i <3:
        #         # 调用3次错误密码 让其锁定
        #         result = self.api_reg.api_post_login(keywords=keywords,
        #                                              password=pwd)
        #         i+=1
        #     # 断言锁定状态
        #     common_assert(result, expect_msg=expect_msg)
        #     # 锁定60秒
        #     sleep(60)
        #     # 锁定结束,正常登录
        #     result = self.api_reg.api_post_login(keywords="13600001111",
        #                                          password="******")
        #     common_assert(result, expect_msg="登录成功")
        # 2. 非错误次数验证,执行登录
        result = self.api_reg.api_post_login(keywords=keywords, password=pwd)
        try:
            common_assert(result, expect_msg=expect_msg)
            log.info("断言通过,断言信息:{}".format(expect_msg))
        except Exception as e:
            # 日志
            log.error(e)
            # 抛异常
            raise

    @pytest.mark.parametrize(("status", "expect_msg"),
                             read_json("reg_login.json", "is_login"))
    def test05_is_login(self, status, expect_msg):
        if status == "登录":
            # 登录
            self.api_reg.api_post_login(keywords="13600001111",
                                        password="******")
        # 调用查询登录方法
        result = self.api_reg.api_get_login_status()
        try:
            common_assert(result, expect_msg=expect_msg)
            log.info("断言通过,断言信息:{}".format(expect_msg))
        except Exception as e:
            # 日志
            log.error(e)
            # 抛异常
            raise
示例#9
0
 def setup(self):
     # 获取session
     self.session = requests.session()
     # 实例化ApiRegLogin对象
     self.api_reg = ApiRegLogin(self.session)
示例#10
0
 def get_apireglogin(cls, session):
     return ApiRegLogin(session)
示例#11
0
class TestRegLogin(unittest.TestCase):
    # 初始化
    def setUp(self) -> None:
        # 获取session对象 a01
        self.session = requests.session()
        log.info("正在获取session对象:{}".format(self.session))
        # 获取ApiRegLogin对象
        self.api = ApiRegLogin(self.session)
        log.info("正在获取ApiRegLogin对象: {}".format(self.api))

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

    # 1. 注册图片验证码 测试方法
    def test01_img_code(self):
        # 调用图片验证码接口
        r = self.api.api_img_code(random.random())
        # 断言 响应200
        print("响应状态吗:", r.status_code)
        try:
            self.assertEqual(200, r.status_code)
        except Exception as e:
            log.error(e)
            raise

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

    # 3. 注册 测试方法
    def test03_register(self):
        # 1. 获取图片验证码
        self.api.api_img_code(random.random())
        # 2. 获取短信验证码
        self.api.api_sms_code(phone4, imgVerifyCode)
        # 3. 调用注册接口
        r = self.api.api_register(phone4,
                                  password,
                                  imgVerifyCode,
                                  phone_code,
                                  dy_server)
        print(r.json())
        try:
            # 4. 断言注册信息
            common_assert(self, r, description="注册成功")
        except Exception as e:
            log.error(e)
            raise

    # 4. 登录 测试方法
    def test04_login(self):
        r = self.api.api_login(phone4, password)
        print("登陆结果:", r.json())
        try:
            common_assert(self, r, description="登录成功")
        except Exception as e:
            log.error(e)
            raise

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

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

    # 1. 随机整数获取验证码成功
    def test06_img_code_random_int(self):
        num = random.randint(10000000, 999999999)
        r = self.api.api_img_code(num)
        print("响应状态吗为:", r.status_code)
        log.info("随机整数获取验证码的响应状态码为:".format(r.status_code))
        try:
            common_assert(self, r, status=None)
        except Exception as e:
            log.error(e)

    # 2. 随机数为空
    def test07_img_code_random_null(self):
        num = ""
        r = self.api.api_img_code(num)
        log.info("随机数为空获取验证码的响应状态码为:{}".format(r.status_code))
        try:
            common_assert(self, r, response_code=404, status=None)
        except Exception as e:
            log.error(e)

    # 3. 随机数为字符串
    def test08_img_code_random_str(self):
        num = random.sample("qwerttyuiopasdfghjklzxcvbnm", 8)
        r = self.api.api_img_code("".join(num))
        log.info("随机数为空获取验证码的响应状态码为:{}".format(r.status_code))
        try:
            common_assert(self, r, response_code=400, status=None)
        except Exception as e:
            log.error(e)

    """注册 获取短信验证码"""

    # 1. 手机号为空
    def test09_phone_is_null(self):
        phone = ""
        # 1. 获取图片验证码 目的:使用session对象自动记录cookie
        self.api.api_img_code(random.random())
        # 2. 获取短信验证码
        r = self.api.api_sms_code(phone, imgVerifyCode)
        log.info("手机号为空 响应数据为:{}".format(r.json()))
        print("获取短信验证码 结果为:", r.json())
        try:
            # 调用断言方法
            common_assert(self, r, status=100)
        except Exception as e:
            log.error(e)
            raise

    # 2. 图片验证码为空
    def test10_phone_img_code_is_null(self):
        imgVerifyCode = ""
        # 1. 获取图片验证码 目的:使用session对象自动记录cookie
        self.api.api_img_code(random.random())
        # 2. 获取短信验证码
        r = self.api.api_sms_code(phone, imgVerifyCode)
        log.info("图片验证码为空 响应数据为:{}".format(r.json()))
        print("图片验证码为空 结果为:", r.json())
        try:
            # 调用断言方法
            common_assert(self, r, status=100, description="图片验证码错误")
        except Exception as e:
            log.error(e)
            raise

    # 3. 图片验证码错误
    def test10_phone_img_code_err(self):
        imgVerifyCode = "9977"
        # 1. 获取图片验证码 目的:使用session对象自动记录cookie
        self.api.api_img_code(random.random())
        # 2. 获取短信验证码
        r = self.api.api_sms_code(phone, imgVerifyCode)
        log.info("图片验证码为空 响应数据为:{}".format(r.json()))
        print("图片验证码为空 结果为:", r.json())
        try:
            # 调用断言方法
            common_assert(self, r, status=100, description="图片验证码错误")
        except Exception as e:
            log.error(e)
            raise

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

    """注册接口 其他用例"""

    # 1. 输入所有参数
    def test12_reg_all_params(self):
        # 1. 获取图片验证码
        self.api.api_img_code(random.random())
        # 2. 获取短信验证码
        self.api.api_sms_code(phone2, imgVerifyCode)
        # 3. 调用注册接口
        r = self.api.api_register(phone2,
                                  password,
                                  imgVerifyCode,
                                  phone_code,
                                  dy_server,
                                  invite_phone)
        print(r.json())
        try:
            # 4. 断言注册信息
            common_assert(self, r, description="注册成功")
        except Exception as e:
            log.error(e)

    # 2. 图片验证码错误
    def test13_reg_img_code_err(self):
        imgVerifyCode = "8899"
        # 1. 获取图片验证码
        self.api.api_img_code(random.random())
        # 2. 获取短信验证码
        self.api.api_sms_code(phone4, imgVerifyCode)
        # 3. 调用注册接口
        r = self.api.api_register(phone4,
                                  password,
                                  imgVerifyCode,
                                  phone_code,
                                  dy_server,
                                  invite_phone)
        print(r.json())
        log.info("注册 图片验证码错误的结果为:{}".format(r.json()))
        try:
            # 4. 断言注册信息
            common_assert(self, r, status=100, description="验证码错误")
        except Exception as e:
            log.error(e)
            raise

    # 3. 短信验证码错误
    def test14_reg_sms_code_err(self):
        phone_code = "8899"
        # 1. 获取图片验证码
        self.api.api_img_code(random.random())
        # 2. 获取短信验证码
        self.api.api_sms_code(phone5, imgVerifyCode)
        # 3. 调用注册接口
        r = self.api.api_register(phone5,
                                  password,
                                  imgVerifyCode,
                                  phone_code,
                                  dy_server,
                                  invite_phone)
        print(r.json())
        log.info("注册 图片验证码错误的结果为:{}".format(r.json()))
        try:
            # 4. 断言注册信息
            common_assert(self, r, status=100, description="验证码错误")
        except Exception as e:
            log.error(e)
            raise

    # 4. 手机号已存在
    def test15_reg_phone_exist(self):
        # 1. 获取图片验证码
        self.api.api_img_code(random.random())
        # 2. 获取短信验证码
        self.api.api_sms_code(phone4, imgVerifyCode)
        # 3. 调用注册接口
        r = self.api.api_register(phone4,
                                  password,
                                  imgVerifyCode,
                                  phone_code,
                                  dy_server,
                                  invite_phone)
        print(r.json())
        log.info("注册 图片验证码错误的结果为:{}".format(r.json()))
        try:
            # 4. 断言注册信息
            common_assert(self, r, status=100, description="手机已存在")
        except Exception as e:
            log.error(e)
            raise

    # 5. 密码为空 bug
    def test16_reg_pwd_is_null(self):
        password = ""
        # 1. 获取图片验证码
        self.api.api_img_code(random.random())
        # 2. 获取短信验证码
        self.api.api_sms_code(phone5, imgVerifyCode)
        # 3. 调用注册接口
        r = self.api.api_register(phone5,
                                  password,
                                  imgVerifyCode,
                                  phone_code,
                                  dy_server,
                                  invite_phone)
        print(r.json())
        log.info("注册 图片验证码错误的结果为:{}".format(r.json()))
        try:
            # 4. 断言注册信息
            common_assert(self, r, status=100, description="密码不能为空")
        except Exception as e:
            log.error(e)
            raise

    # 6. 未同意协议 bug
    def test17_reg_not_dy_server(self):
        dy_server = "off"
        # 1. 获取图片验证码
        self.api.api_img_code(random.random())
        # 2. 获取短信验证码
        self.api.api_sms_code(phone6, imgVerifyCode)
        # 3. 调用注册接口
        r = self.api.api_register(phone6,
                                  password,
                                  imgVerifyCode,
                                  phone_code,
                                  dy_server,
                                  invite_phone)
        print(r.json())
        log.info("注册 图片验证码错误的结果为:{}".format(r.json()))
        try:
            # 4. 断言注册信息
            common_assert(self, r, status=100, description="请同意我们协议")
        except Exception as e:
            log.error(e)
            raise

    """登录接口 其他用例"""

    # 1. 用户不存在
    def test18_login_username_not_exists(self):
        r = self.api.api_login(phone7, password)
        print("登陆结果:", r.json())
        log.info("登录·用户不存在结果:{}".format(r.json()))
        try:
            common_assert(self, r, status=100, description="用户不存在")
        except Exception as e:
            log.error(e)
            raise

    # 2. 密码为空
    def test19_login_pwd_is_null(self):
        password = ""
        r = self.api.api_login(phone7, password)
        print("登陆结果:", r.json())
        log.info("登录·用户不存在结果:{}".format(r.json()))
        try:
            common_assert(self, r, status=100, description="密码不能为空")
        except Exception as e:
            log.error(e)
            raise

    # 3. 密码错误1次-3次
    # def test20_login_pwd_err_verify(self):
    #     password = "******"
    #     r = self.api.api_login(phone4, password)
    #     r = self.api.api_login(phone4, password)
    #     r = self.api.api_login(phone4, password)
    #     common_assert(self, r, status=100, description="锁定")
    #     print("登陆结果:", r.json())
    #     log.info("登录·用户不存在结果:{}".format(r.json()))
    #     print("暂停60秒...")
    #     sleep(60)
    #     r = self.api.api_login(phone4, password="******")
    #     print("暂停60秒解锁后,登录结果:{}".format(r.json()))
    #     try:
    #         common_assert(self, r, status=200, description="登录成功")
    #     except Exception as e:
    #         log.error(e)
    #         raise

    # 4、登录查询状态 失败
    def test21_login_status_fail(self):
        # 1. 判断是否登录
        r = self.api.api_is_login()
        print("登陆查询结果:", r.json())
        try:
            common_assert(self, r, status=250, description="未登陆")
        except Exception as e:
            log.error(e)
            raise
示例#12
0
class TestRegLogin(unittest.TestCase):
    # 初始化
    def setUp(self) -> None:
        # 获取session对象 a01
        self.session = requests.session()
        log.info("正在获取session对象:{}".format(self.session))
        # 获取ApiRegLogin对象
        self.api = ApiRegLogin(self.session)
        log.info("正在获取ApiRegLogin对象: {}".format(self.api))

    # 结束
    def tearDown(self) -> None:
        log.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.api_img_code(random)
        # 断言 响应200
        print("响应状态吗:", r.status_code)
        try:
            self.assertEqual(expect_code, r.status_code)
        except Exception as e:
            log.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):
        if phone != "13600001112":
            # 1. 获取图片验证码 目的:使用session对象自动记录cookie
            self.api.api_img_code(random.random())
        # 2. 获取短信验证码
        r = self.api.api_sms_code(phone, imgverifycode, type=type)
        print("获取短信验证码 结果为:", r.json())
        try:
            # 调用断言方法
            common_assert(self,
                          r,
                          response_code=expect_code,
                          status=expect_status,
                          description=description)
        except Exception as e:
            log.error(e)
            raise

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

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

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

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

            sleep(60)
            r = self.api.api_login("13600001111", "q123456")
            log.info("请求数据:{} 响应数据:{}".format(
                (keywords, password, expect_code), r.json()))
            print("登陆结果:", r.json())

        try:
            common_assert(self, r, response_code=expect_code)
        except Exception as e:
            log.error(e)
            raise

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