使用 python 批量处理 Jmeter 请求头
2021/12/12 22:17:33
本文主要是介绍使用 python 批量处理 Jmeter 请求头,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
在使用 jmeter 录制并处理脚本的时候,在处理登录 token 或者其他 HTTP 请求头时,一般把这些请求头提取出到自己建一个公共的 HTTP 信息头管理器
,然后开始录制脚本。
但是录制的时候会发现录制出来的 HTTP 信息头管理器
还会存在这些公共请求头,我们还要认为删除或者通过正则表达式提取器
来替换,第一种略显麻烦,但通过代码可以实现一键删除。
实现
本人使用 python 3.9 直接对 jmx 文件进行文本处理,使用到了 lxml 对节点进行处理。
处理单位以文件夹形式,使用的时候把需要处理的 jmx 文件放进一个空的文件夹,该文件夹的绝对路径即代码中的变量 jmx_folder
,需要删除的 HTTP 请求即代码中的变量 header
,使用的时候对应修改这两个变量即可。
代码
import os from lxml import etree import shutil import re def jmx_anal(jmx_folder,header): files = os.listdir(jmx_folder) # 迭代读取文件夹下的 jmx 文件 jmx_files = [file for file in files if '.jmx' in file] parser = etree.XMLParser(encoding='utf-8') for jmx_file in jmx_files: tree = etree.parse(jmx_folder+'/'+jmx_file,parser = parser) # 获取所有事务控制器 for ele in tree.iter(tag='elementProp'): # 删除对应的 HTTP 请求头 if ele.get('name') == header: ele.clear() # lxml 删除节点并不完全,不会删除表示结尾的 符号,所以还需要进一步处理 text = etree.tostring(tree,encoding='utf-8').decode('utf-8') pattern = re.compile('elementProp/><') new_text = re.sub(pattern,r'',text) document = open(jmx_folder+'/'+jmx_file, 'w',encoding="utf-8") document.write('<!--?xml version="1.0" encoding="UTF-8"?-->\r') document.write(new_text) document.close() if __name__ == "__main__": # 使用的时候修改以下两个变量为自己的环境即可 jmx_folder = 'D:\Ginny' header = 'Authorization' jmx_anal(jmx_folder,header)
这篇关于使用 python 批量处理 Jmeter 请求头的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-21Python编程基础教程
- 2024-11-20Python编程基础与实践
- 2024-11-20Python编程基础与高级应用
- 2024-11-19Python 基础编程教程
- 2024-11-19Python基础入门教程
- 2024-11-17在FastAPI项目中添加一个生产级别的数据库——本地环境搭建指南
- 2024-11-16`PyMuPDF4LLM`:提取PDF数据的神器
- 2024-11-16四种数据科学Web界面框架快速对比:Rio、Reflex、Streamlit和Plotly Dash
- 2024-11-14获取参数学习:Python编程入门教程
- 2024-11-14Python编程基础入门