bdwm-orion

1.0.13 • Public • Published

Orion猎户座: 命令行test case运行工具

安装

使用

传递文件:

bdwm-orion --file example_test_case_file.json

直接传递JSON格式内容:

bdwm-orion '{"option":{"url":"http://waimai.baidu.com"},"operation":[]}'

传递额外再JSON编码一次的内容:

bdwm-orion --json '"{\"option\":{\"url\":\"http://waimai.baidu.com\"},\"operation\":[]}"'

传递Base64编码的内容:

bdwm-orion --base64 'eyJvcHRpb24iOnsidXJsIjoiaHR0cDovL3dhaW1haS5iYWlkdS5jb20ifSwib3BlcmF0aW9uIjpbXX0='

** 注意: ** 如果JSON内容是由不受信任的用户直接编写的,则一定要进行Base64或额外的一层JSON编码包装以防止错误或潜在的攻击。

Test Case文件结构

一个Test Case定义了一个自动测试流程,结构上是一个如下的JSON对象:

{
  "option": {
    "url": "http://waimai.baidu.com/waimai?qt=about",
    "ignore_page_error": true
  },
  "operation": [
    {
      "action": "click",
      "target": ".footer-item.help a:eq(1)"
    },
    {
      "action": "assert",
      "target": "document.location.href",
      "expect": "http://waimai.baidu.com/waimai?qt=helpusage"
    }
  ]
}

选项

以下为option中可定义的内容:

  • url: 测试起始网址。默认"about:blank"
  • cookie: 加载页面所使用的cookie值。默认空字符串
  • useragent: 加载页面所用UA标识。默认同chrome浏览器
  • viewport: 测试页面所使用的屏幕尺寸。默认"1360x670"
  • ignore_script_error: 页面js报错不触发报警。默认false
  • ignore_resource_error: 资源加载错误不触发报警。默认true
  • resource_timeout: 资源加载超时时间(毫秒)。默认5000
  • ready_delay: 持续多少毫秒内没有进一步资源加载才执行下一步操作。默认1500
  • timeout: 测试总体超时时间(毫秒),超时会触发报警。默认60000
  • report: 报告输出路径,可以是文件路径也可以是发送POST请求的网址。报告结构见后文
  • id: 任务id,仅用于在报告中回传
  • loglevel: 日志输出级别,可为debug、normal、error、silent。默认normal

以上内容除在主体JSON内容内传入外,均可以在命令行以参数形式传入覆盖,如

bdwm-orion --file example_test_case_file.json --cookie 'session_id=ABCDEF; TOKEN=FEDCBA;'

强烈建议以参数形式传入id和report属性,以保证即使文件解析失败也可发送报告。

操作

以下为operation中可定义的操作类型(action)及其额外参数说明:

  • click: 点击页面元素
    • target: 用selector语法指定被点击的目标元素
    • wait: 等待资源加载,默认true
  • input: 设定表单域填入值
    • target: 用selector语法指定目标元素
    • value: 设定的值
  • submit: 提交表单
    • target: 用selector语法指定被提交的表单
  • sleep: 等待指定时间
    • duration: 等待的毫秒数,默认2000
    • wait: 等待资源加载,默认false
  • until: 通过每0.5秒1次的轮询,等待指定的条件
    • condition: 所等待的条件表达式,默认true
  • assert: 断言测试,如果测试失败则终止测试并发送报警
    • eval: 断言表达式
    • expect: 期望值,若前置>、>=、<、<=、=、!=、!、@、!@等符号,则期望值将作为表达式运算。 (@表示包含,可用于数组或字符串,!表示非)
  • script: 在页面内执行JS脚本
    • content: 脚本内容
    • wait: 等待资源加载,默认true
  • navigate: 跳转到指定网址
    • url: 跳转目标网址

每一个操作都可设定一个name属性,将在报告中回传。

报告结构

如果是文件,报告会是个JSON格式,如果提供了网址,报告则以x-www-form-urlencoded格式发送POST请求。

报告包含以下内容:

  • id: 传入的id
  • status: 运行结果状态码,除0以外的情况都应该报警
    • 0: 所有测试正常
    • 1: 配置文件解析错误
    • 2: 测试超时
    • 3: 页面存在脚本报错
    • 4: 存在加载失败的资源
    • 5: 操作或断言失败
  • message: 运行结果描述
  • snapshot: 出错时的base64编码页面截图(配置文件解析错误时没有截图)
  • snapshot_html: 出错时的网页html字符串
  • detail: JSON数组,包含每一步操作的执行情况,其子元素结果如下
    • name: 传入的操作名称
    • action: 操作类型
    • 操作的其他属性
    • status: 操作状态码
      • 0: 尚未执行
      • 1: 执行正常
      • 2: 执行失败
  • failed_res: JSON数组,加载失败的资源url列表
  • failed_res_detail: JSON数组,加载失败的资源错误信息
  • console_log: 字符串,页面控制台输出内容
  • console_error: 字符串,页面控制台报错内容

Readme

Keywords

none

Package Sidebar

Install

npm i bdwm-orion

Weekly Downloads

1

Version

1.0.13

License

ISC

Last publish

Collaborators

  • davidaq