您的位置:首页 > 教育 > 锐评 > 安卓应用开发教程_建筑招投标信息网_百度公司怎么样_关键词seo如何优化

安卓应用开发教程_建筑招投标信息网_百度公司怎么样_关键词seo如何优化

2025/2/25 15:40:02 来源:https://blog.csdn.net/chenchen_nini/article/details/144216145  浏览:    关键词:安卓应用开发教程_建筑招投标信息网_百度公司怎么样_关键词seo如何优化
安卓应用开发教程_建筑招投标信息网_百度公司怎么样_关键词seo如何优化

实际使用场景:pytest运行用例的时候,启动mitmdump进程试试抓包,pytest命令行启动的时候,传入mitmdump需要的参数(1)抓包生成的文件地址 (2)mitm的proxy设置

#  在pytest的固定文件中conftest.py中def pytest_addoption(parser):"""自定义pytest的命令行参数,@pytest.fixture配合下面的方法一起用:param parser::return:"""parser.addoption("--mitm_path", action="store",default="",type=str,help="--mitm_path:mitmproxy生成的cvs文件名称")parser.addoption("--mitm_proxy", action="store",default="127.0.0.1:8080",type=str,help="--mitm_proxy:mitmproxy设置代理")@pytest.fixture(scope="session", autouse=True)
def set_env_mitm_path(request):"""将--mitm_path从命令行中获取放入环境变量中,给mitmdump工具用:param request::return:"""mitm_value = request.config.getoption("--mitm_path")os.environ['mitm_path'] = mitm_valueprint('\n --mitm_path参数值:', mitm_value)return mitm_value@pytest.fixture(scope="session", autouse=True)
def set_env_mitm_proxy(request):"""将--mitm_proxy从命令行中获取放入环境变量中,给mitmdump工具用:param request::return:"""mitm_proxy = request.config.getoption("--mitm_proxy")os.environ['mitm_proxy'] = mitm_proxyprint('\n --mitm_proxy参数值:', mitm_proxy)return mitm_proxy@pytest.fixture(scope="session")
def setup_mitmdump():"""pytest启动,cmd启动一个mitmdump的进程:return: """if not os.environ.get("mitm_path"):# 命令行没有传入mitm_path的值,给默认值一个caller = os.environ.get('PYTEST_CURRENT_TEST').split(':')[-1].split(' ')[0]mitm_path = "./testdata/" + caller + ".csv"os.environ["mitm_path"] = mitm_pathcmd = r"mitmdump -p {}".format(os.environ.get("mitm_proxy") if os.environ.get("mitm_proxy") else '8080')process = subprocess.Popen(cmd, creationflags=subprocess.CREATE_NEW_CONSOLE)time.sleep(1)yieldtime.sleep(6)print("stop mitm")process.kill()

测试文件

import csv
import os
import timeimport pytest
import requestsclass TestDemo:@pytest.mark.usefixtures("setup_mitmdump")@pytest.mark.parametrize("name,assert_word",[pytest.param("1", "smart", id="第一个"),pytest.param("2", "smart", id="第二个")])def test_001(self, name, assert_word):print("我是用例test_%s" % name)url = "http://httpbin.org/get"params = {}headers = {"content-type": "application/json; charset=UTF-8"}proxies = {'http': 'http://127.0.0.1:%s' % os.environ.get("mitm_proxy")}  # ip地址option = requests.get(url=url, headers=headers, params=params, proxies=proxies)time.sleep(10)

运行效果

pytest -s test1.py --mitm_path=D:/hf.csv

pytest -s test1.py --mitm_path=D:/hf.csv  --mitm_proxy 8989

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com