记录python requests模块及请求重试

1、打开charles,手机连接charles代理,然后手机登陆微信(ylgy)小游戏,通过第一关,获取https://cat-match.easygame2021.com/sheep/v1/game/game_over接口的t值(为用户的token),替换__token,设置repeat_time运行即可

2、安装requests模块,其他模块为内置模块无需安装

pip install requests

#coding=utf-8
import requests
import math
import random
import json

class App:
    #刷关次数(可修改)
    repeat_time = 6
    #失败重试次数
    again_times = 3
    #记录成功次数
    success_num = 0
    #换成自己的
    __token ="eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE2OTQyMjcxNDEsIm5iZiI6MTY2MzEyNDk0MSwiaWF0IjoxNjYzMTIzMTQxLCJqdGkiOiJDTTpjYXRfbWF0Y2g6bHQxMjM0NTYiLCJvcGVuX2lkIjoiIiwidWlkIjoxNjEzNjI2OSwiZGVidWciOiIiLCJsYW5nIjoiIn0.hIDwOnwjDPDR4i9d4lrei3MSnz8ljWb6iwz0jcgTFjI"
    #扬了扬了接口
    __origin ='https://cat-match.easygame2021.com/sheep/v1/game/game_over'
    #请求头
    __headers = {
    'Host': "cat-match.easygame2021.com",
    "User-Agent":
        "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/105.0.0.0 Safari/537.36 Edg/105.0.1343.33",
    't': __token
    }
    #通关
    def clearance(self):
        time = math.ceil(random.random() * (3600 - 1 + 1))+1
        url = "{origin}?rank_score=1&rank_state=1&rank_time={rank_time}&rank_role=1&skin=1".format(origin=self.__origin,rank_time=time)
        res = requests.get(url=url, headers=self.__headers,timeout=(10, 5))
        code = json.loads(res.text)['err_code']
        if(code == 0):
            self.success_num += 1
            print('通关'+str(self.success_num)+'次')
        else:
            if(self.again_times>0):
                self.again()
            else:
                self.again_times = 3
                print('闯关失败')

    #重试
    def again(self):
        self.again_times -= 1
        print('重试')
        self.clearance()
        
    #疯狂刷刷刷
    def repeatFun(self):
        for i in range(self.repeat_time):
            self.clearance()
        print('程序结束')

if __name__ == "__main__":
    app = App()
    App().repeatFun()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
接口自动化测是指使用程序代码自动执行接口测的过程,通过编写脚本来模拟用户请求、检查响应结果等操作,以验证接口的正确性、性能和稳定性。Python的unittest模块、ddt模块requests模块是编写接口自动化测用例的常用工具。 unittest是Python标准库中的测框架,支持测用例的组织、执行和报告。ddt(Data-Driven Testing)是一个扩展库,可以让我们以数据驱动的方式编写测用例,以便快速执行大量的测用例。requests是一个HTTP库,可以方便地发送HTTP请求和处理响应。 下面是一个使用Python的unittest模块、ddt模块requests模块编写用户判用例脚本的示例: ``` import unittest import ddt import requests @ddt.ddt class UserDuplicationTest(unittest.TestCase): @ddt.data( {'name': 'Alice', 'email': 'alice@example.com', 'expected': False}, {'name': 'Bob', 'email': 'bob@example.com', 'expected': False}, {'name': 'Charlie', 'email': 'alice@example.com', 'expected': True}, ) def test_duplicate(self, data): url = 'http://example.com/api/check_duplicate' headers = {'Content-Type': 'application/json'} payload = {'name': data['name'], 'email': data['email']} response = requests.post(url, headers=headers, json=payload) result = response.json()['result'] self.assertEqual(result, data['expected']) if __name__ == '__main__': unittest.main() ``` 在上述示例中,我们使用了@ddt.data装饰器来指定测数据,并在test_duplicate方法中使用了requests模块发送HTTP请求,检查响应结果是否符合预期。最后,在主程序中使用unittest.main()方法来执行测用例。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值