📽️流量录制

写在前面:该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文件解析

如果不使用流量录制的方式,也可以通过浏览器F12fiddlerCharles等场景抓包工具导出的.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目录下。

具体修改方法参考上一章。

results matching ""

    No results matching ""