har2case源码解读
1、下载har2case源码
地址:https://github.com/HttpRunner/har2case
2、目录结构
har2case:程序文件
test:测试文件
data:测试所需的har文件存放路径
test_har:测试har文件
test_utils:测试utils文件
main:主入口
setup:版本发布的文件(看不懂)
3、har2case主要文件内容
cli.py封装的命令
compat.py 是用于py2和py3的模块处理
core.py 主要的har文件内容读取后的转换
utils.py 用于基本的外部公共的封装
4、摸索着解读
utils.py
-
# 加载HAR文件并返回日志条目列表
-
def load_har_log_entries(file_path):
-
with io.open(file_path, "r ", encoding="utf-8-sig") as f:
-
try:
-
content_json = json.loads(f.read())
-
return content_json["log"]["entries"]
-
except (KeyError, TypeError):
-
logging.error("HAR file content error: {}".format(file_path))
-
sys.exit(1)
读取har文件,并且将content_json["log"]["entries"]内容返一个list,及为har中的如下部分内容:
通过utils.py 将list转成字典类型,便于后续的处理
dump_yaml与dump_json 用于生成转换后的yaml文件或者json文件
在core.py中获取列表中request中的值,可以获取url
对应yaml文件中的testname部分
修改teststep_dict["name"]中的name可以改变yaml文件中的名称【如果你需要修改的情况】
下面代码分别是获取请求方式method、请求头内容headers、请求参数data
其中headers中的部分是通过这个list中进行过滤,在core.py开头
强制将大写转成小写,字母并匹配后过滤掉不需要的请求头的内容;如果不需要请自己加到IGNORE_REQUEST_HEADERS中,建议小写避免不必要的麻烦。
其中validate中是yaml文件断言部分,其中很多知识点:
-
if not 的用法
-
isinstance()函数的用法
-
startswith()函数的用法
将返回的内容因为时base64加密的,所以返回内容通过base64的方法进行解密。
你会发现解密的断言内容validate内容与实际f12中看到的内容不一致,缺少了很多尤其在响应内容的json数据存在嵌套时,嵌套的数据不会被放入断言中。
将此处代码注释掉就会拿到base64解密后的所有响应内容
5、结尾
菜鸟一个尝试解读源码内容,欢迎指导
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhggahjg
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
怎样阻止微信小程序自动打开
PHP中文网 06-13 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01