📽️流量录制
写在前面:该feature是在v1.0提供的探索性功能,在v2.0中已经不推荐使用了,如果对这个feature感兴趣或对你产生了灵感,可以扒下来二次开发
如果不想写代码,也不想YAML
,那么用流量录制吧。
aomaker
提供aomaker record
或者arec
来录制浏览器上的流量,录制完成后,会自动在yamlcase
目录下生成一份xxx.yaml
文件,其中记录了请求调用信息,因为记录的是原始流量,如果你想让case固化,则需要按照aomaker
提供的YAML语法
去将必要的参数进行参数化改造。
流量录制
1.打开浏览器(以Chrome
为例),修改浏览器代理,将代理改为aomaker
代理的端口地址。
有两种方式:
- 在浏览器设置中,修改浏览器代理为127.0.0.0:8082(不推荐)
- 安装浏览器插件Proxy SwitchyOmega,在插件中配置
aomaker
代理,并将代理切换为aomaker
。
该插件可以非常轻松的管理代理并切换多个代理,非常方便好用,强烈推荐~
2.进入到工程根目录下,执行aomaker record
命令
格式:
aomaker record [-h] [-f [FILTER_STR]] [-p [PORT]] [--flow-detail [LEVEL]] [--save_response [SAVE_RESPONSE]] [--save_headers [SAVE_HEADERS]] [file_name]
aomaker record
有一个简写命令,arec
,两者等效。
执行aomaker record xxx.yaml
后,aomaker
将开始录制,此时只需要在浏览器中去操作需要转化成的自动化用例的业务场景即可。
录制完成后,在控制台按ctrl+c
即可退出录制,输出的文件将放在工程根目录下的yamlcase
目录中。
参数说明:
- -f, –filter_str
指定过滤字段,如-f "console.shanhe.com"
,即表示代理只捕获url中含有"console.shanhe.com"
的请求。
也可以同时指定多个过滤字段(过滤表达式参考下面),用” | “分割即可,多个条件直接是”and”关系,如-f "console.shanhe.com | ~hq method:/alarm" ,表示代理只捕获url中含有"console.shanhe.com" 和请求头中有"method:/alarm" 的请求。 |
附支持的过滤表达式:
The following operators are understood:
~q Request
~s Response
Headers:
Patterns are matched against "name: value" strings. Field names are
all-lowercase.
~a Asset content-type in response. Asset content types are:
text/javascript
application/x-javascript
application/javascript
text/css
image/*
application/x-shockwave-flash
~h rex Header line in either request or response
~hq rex Header in request
~hs rex Header in response
~b rex Expression in the body of either request or response
~bq rex Expression in the body of request
~bs rex Expression in the body of response
~t rex Shortcut for content-type header.
~d rex Request domain
~m rex Method
~u rex URL
~c CODE Response code.
rex Equivalent to ~u rex
- -p,–port
指定aomaker
代理端口,默认为8082。
- –flow-detail
指定代理录制时记录日志信息的详细程度,一共0~4五个等级,详细程度依次递增,默认为0。
- –save_response
指定录制流量时,是否保存响应结果,0为保存,1为不保存,默认为0。
- –save_headers
指定录制流量时,是否保存请求头,0为保存,1为不保存,默认为1。
- file_name
该参数为必填参数,指定录制流量的输出文件(YAML格式),需要注意指定文件名是需要添加后缀”.yaml”或”.yml”,文件将保存在项目根目录的yamlcase
目录下。
har文件解析
如果不使用流量录制的方式,也可以通过浏览器F12
,fiddler
,Charles
等场景抓包工具导出的.har
文件,aomaker
支持将har
文件解析为YAML
格式的功能,使用命令aomaker har2y
即可。
参数说明:
- har_path
指定.har文件位置
- yaml_path
指定转化的.yaml文件输出位置
- –filter_str
har文件转化为yaml文件时,所需要筛选的字段
- –exclude_str
har文件转化为yaml文件时,所需要排除的字段
- –save_response
指定har文件转化为yaml文件时,是否保存响应结果,0为保存,1为不保存,默认为0。
- –save_headers
指定har文件转化为yaml文件时,是否保存请求头,0为保存,1为不保存,默认为1。
修改YAML文件
录制的流量将保存在项目根目录的yamlcase
目录下。
具体修改方法参考上一章。