赞
踩
地址:https://github.com/HttpRunner/har2case
har2case:程序文件
test:测试文件
data:测试所需的har文件存放路径
test_har:测试har文件
test_utils:测试utils文件
main:主入口
setup:版本发布的文件(看不懂)
cli.py封装的命令
compat.py 是用于py2和py3的模块处理
core.py 主要的har文件内容读取后的转换
utils.py 用于基本的外部公共的封装
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解密后的所有响应内容
菜鸟一个尝试解读源码内容,欢迎指导
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。