工作笔记--自动切换host的python code

本文介绍了一种使用Python脚本在Android设备上修改hosts文件的方法。通过ADB命令拉取和推送hosts文件,实现对hosts文件的修改及重置操作。

修改host代码:

#coding:utf-8
import os,time

pwd = os.path.dirname(__file__) #获取当前文件夹的绝对路径
pull_host_cmd = 'adb pull system/etc/hosts '+pwd
push_host_cmd = 'adb push '+pwd+'\hosts system/etc/'

os.popen('adb root')
temp = os.popen('adb remount')

print 'Pull hosts..'
temp = os.popen(pull_host_cmd)
temp = temp.readline().split()

#读取配置文件
config_path = os.path.join(pwd, 'config.txt') #获取当前文件夹内的config文件
config_file = open(config_path, "r") #读取文件

#写追加方式打开host文件
host_path = os.path.join(pwd,'hosts')
host_file = open(host_path,"a+")

for line in config_file:
host_file.write(line)

config_file.close() #关闭文件
host_file.close()

#push hosts
temp = os.popen(push_host_cmd)
temp = temp.readline().split()
temp = os.system('del hosts')

重置到localhost的代码:
#coding:utf-8
import os,time

pwd = os.path.dirname(__file__) #获取当前文件夹的绝对路径
pull_host_cmd = 'adb pull system/etc/hosts '+pwd
push_host_cmd = 'adb push '+pwd+'\hosts system/etc/'

temp = os.popen(pull_host_cmd)
temp = temp.readline().split()

host_path = os.path.join(pwd,'hosts')
host_file = open(host_path,"wb")

host_file.write('127.0.0.1 localhost\n')
host_file.close()
os.system('adb push hosts system/etc/hosts')
os.system('del hosts')

Project目录:

 

 

 

转载于:https://www.cnblogs.com/ailiailan/p/7919470.html

<think>好的,我现在需要帮用户寻找用于Python接口测试的相关库。首先,用户明确提到了“python api testing libraries”,所以我要先回想自己知道的常用库。 首先想到的是requests,这个库非常基础,用于发送HTTP请求,虽然不是专门为测试设计,但很多测试框架会基于它。然后,可能用户需要更专业的测试框架,比如pytest,它本身是一个测试框架,但可以结合requests来做API测试。另外,还有一些专门的库,比如unittest,这是Python自带的单元测试框架,也可以用来做API测试。 接下来,可能需要更高级的工具,比如Robot Framework,它支持关键字驱动,适合自动化测试。还有httpx,支持异步请求,可能在某些场景下有用。Behave是BDD风格的测试框架,可能适合需要自然语言描述测试用例的情况。 然后,我需要检查用户提供的引用内容,看看有没有相关的信息。引用[4]提到了Postman,虽然它是独立工具,但用户可能也会对Postman的Python库如newman或postman-collection感兴趣。引用[2]提到安装jupyter笔记本和jupytext,可能用户是在Jupyter环境中进行测试,但暂不确定是否需要特别提及。引用[3]关于Tesseract的安装,可能和接口测试无关,可以忽略。引用[5]关于白噪声测试,可能和API测试关系不大,但如果是测试数据分析相关的API,可能需要考虑,但用户的问题更偏向接口测试,所以可能不相关。 接下来,我需要组织这些信息,按照用户的要求,分点列出库的名称、特点、适用场景和示例代码。同,用户要求生成相关问题,需要根据回答内容提出相关问题,比如如何选择库、异步测试、集成到CI/CD等。 需要注意的是,用户希望回答结构清晰,帮助逐步解决问题,所以需要分点说明每个库的优缺点,并给出示例代码。同,引用部分需要自然添加引用标识,比如Postman相关的引用[^4]。 最后,确保所有数学表达式和代码块格式正确,使用中文回答,并生成相关问题。检查是否有遗漏的库,比如aiohttp可能也可以提到,但可能和httpx重复,不过作为异步库还是可以单独列出。还有,像FastAPI的测试客户端,如果用户使用FastAPI框架的话,可以提到TestClient,但需要确认是否属于第三方库。</think>### Python接口测试常用库及工具 以下是针对API测试的Python库及工具分类说明,包含核心功能和使用场景: --- #### 一、基础HTTP请求库 1. **Requests** - **特点**:发送HTTP/HTTPS请求的黄金标准库,适合构造API请求和验证响应 - **场景**:手动编写测试用例或结合测试框架使用 - **示例**: ```python import requests response = requests.get("https://api.example.com/data") assert response.status_code == 200 ``` 2. **HTTPX** - **特点**:支持同步/异步请求,兼容HTTP/2协议 - **场景**:需要处理高并发请求或现代协议特性的测试 - **示例**: ```python async with httpx.AsyncClient() as client: response = await client.get("https://api.example.com/async") ``` --- #### 二、专用测试框架 1. **Pytest + Requests** - **组合优势**:通过插件(pytest-requests)实现参数化测试和夹具管理 - **场景**:需要数据驱动测试或复杂测试套件管理 - **示例**: ```python @pytest.mark.parametrize("user_id", [1, 2, 3]) def test_user_api(user_id): response = requests.get(f"/users/{user_id}") assert "username" in response.json() ``` 2. **Robot Framework** - **特点**:关键字驱动测试,支持自然语言编写用例[^4] - **场景**:非技术人员参与测试脚本编写 - **示例**: ```robotframework *** Test Cases *** Get User Info Create Session api https://api.example.com ${response}= Get Request api /users/1 Should Be Equal As Numbers ${response.status_code} 200 ``` --- #### 三、高级测试工具 1. **Schemathesis** - **原理**:基于OpenAPI规范自动生成测试用例 - **优势**:可发现参数边界问题和非预期输入处理缺陷 - **安装**:`pip install schemathesis` 2. **Tavern** - **特点**:YAML格式声明式测试,支持认证流程测试 - **场景**:需要测试OAuth/JWT等安全机制的API - **示例**: ```yaml test_name: Get user profile stages: - name: Authenticate request: url: "{host}/auth" method: POST response: status_code: 200 ``` --- #### 四、云服务集成方案 1. **Postman+Newman** - **工作流**:在Postman中设计测试集合 → 通过Newman命令行工具集成到CI/CD - **优势**:可视化测试设计+自动化流水线执行 - **示例**: ```bash newman run collection.json --env-var "host=https://api.example.com" ``` --- #### 五、性能测试工具 1. **Locust** - **特点**:Python代码定义用户行为模型,分布式压测支持 - **场景**:需要模拟复杂用户场景的负载测试 - **示例**: ```python from locust import HttpUser, task class ApiUser(HttpUser): @task def get_users(self): self.client.get("/users") ``` --- ### 选择建议参考表 | 需求场景 | 推荐工具 | 复杂度 | |---------------------------|------------------------|--------| | 简单接口验证 | Requests + Pytest | ★☆☆ | | 自动化回归测试 | Robot Framework | ★★☆ | | 协议合规性测试 | Schemathesis | ★★★ | | 安全认证测试 | Tavern | ★★☆ | | CI/CD集成 | Newman + Postman | ★★☆ | | 高并发性能测试 | Locust | ★★★ |
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值