Giter Site home page Giter Site logo

case-script's Introduction

case-script

生成测试用例脚本语言

测试用例

一条测试用例可以用json表示如下

{
  "case": {
    "name": "注册用户",
    "description": "注册新用户(正常流程)",
    "module": "注册模块",
    "condition": [
        "n_exists<admin,unit.item,number(1)>in<数据库>",
        "request<注册>status<status::enable>"
    ],
    "steps": [
      "input<用户名输入框,admin>",
      "input<密码输入框,12345>",
      "click<登录>"
    ],
    "except_result": [
      "except_normal<用户名输入框>",
      "except_normal<密码输入框>",
      "except<登录成功>in<提示框>"
    ],
    "note": [
      ""
    ]
  }
}

语法

前置条件

在测试用例执行前应该满足的条件

status_is

处于某种状态时

语法:

status_is<status>

用法

status_is<status::enable>

含义:

当处于可用状态时

更多的状态详见status

when

处于某种情况时

语法:

when<when>

用法

when<出现alert弹框>

含义:

当处于出现alert弹框

situation_is

处于某种情况下时

语法:

situation_is<s>

用法

situation_is<用户名输入框无效>

含义:

当处于用户名输入框无效情况下

value_is

某个内容的值应该为xxx

语法:

value_is<内容, 值>

用法

content_is<用户名输入框,20>

含义:

用户名输入框的值为20

exists

某个地方中存在xxx

n_exists<数据,unit.item,number(1)>in<数据库>at 语法:

exists<内容, 单位, 数量>in<哪里>
exists<数据, 单位, 数量>in<哪里>at<什么情况下>

用法

exists<数据,unit::item,number(1)>in<数据库>
exists<异常记录,unit::cust(条),number(5)>in<日志平台>
exists<异常记录, unit::cust(条), number(5)>in<日志平台>at<什么情况下>

含义:

数据库中存在一项数据 日志平台中存在5条异常记录

n_exists

某个地方中不存在xxx

语法:

n_exists<内容, 单位, 数量>in<哪里>

用法

n_exists<数据,unit::item,number(1)>in<数据库>
n_exists<异常记录,unit::cust(条),number(5)>in<日志平台>

含义:

数据库中不存在一项数据 日志平台中不存在5条异常记录

request

要求某个事物状态必须为xxx

语法:

request<内容>status<状态>

用法

request<性别单选框>status<status::enable>

含义:

性别单选框的状态必须为可用

n_request

要求某个事物状态不能为xxx

语法:

n_request<内容>status<状态>

用法

n_request<性别单选框>status<status::enable>

含义:

性别单选框的状态不能为可用

in_list

要求某个事物在列表中

语法:

in_list<事物>with[
  项1,
  项2,
  项3,
]

用法

in_list<数据库>with[
  Mysql,
  mango,
  sqlserver,
]

含义:

数据库为以下任意一项[Mysql,mango,sqlserver]

status

status::enable => 可用状态
status::disable  => 不可用状态
status::exists => 存在状态
status::n_exists => 不存在
status::delete => 删除
status::n_delete => 没有删除
status::active => 激活状态
status::n_active => 失效状态
status::cust(无效) => 无效状态 (自定义状态)

ACTION

click

clickin | clickleft | clickparti_left

clickat<>

CLICK_WITH_SOMETHING = "点击【{some_thing}】的【{name}】按钮"

INPUT

input<name,value>

input<name,value>in

DRAG

drag<图片>to<另一个窗口>

drag<图片>left<浏览器>to<另一个窗口>

drag<python.py>left<文件列表>to<输入框>right<红色图标>

drag<图片>to<输入框>right<红色图标>

OPEN

open<xxx.exe>

open<xxx.exe>situation_is(python被删除)

SELECT

select<金融>

select<金融>desc<项>

select<金融>bottom<选择框>

select<金融>bottom<选择框>desc<项>

SELECT_PARTICULAR_SOMETHING = "在{location}选择【{name}】"

OTHER

forwardhttp://www.example.com

back_to<桌面>

return_to<上一步>

jump_to<步骤1>

repeat_step<5>

find<输入>do<input>

Location

in<文件>

parti_in<浏览器,设置>

left<浏览器>

parti_left<浏览器,设置>

right<浏览器>

parti_right<浏览器,设置>

top<浏览器>

parti_top<浏览器,地址栏>

bottom<浏览器>

parti_bottom<浏览器,地址栏>

b_left<浏览器>

b_right<浏览器>

t_left<浏览器>

t_right<浏览器>

locationlocation::bottom_left

location::bottom_left

location::bottom_right

location::top_left

location::top_right

location::top

location::bottom

location::middle

location::left

location::right

except

except_normal<输入框>

except_normal<输入框>left<浏览器>

EXCEPT_PARTICULAR_SOMEWHERE_DISPLAY = "{location}的【{some_where}】为【{something}】"

except_result<文本框>is<admin>

except<单元框>status_is<status::enable>

except_alert<提示框>left<输入框>

except<登录成功>in<提示框>

except<红色字体>change_to<蓝色字体>

except_note<请输入用户名>

except_note<请输入用户名>left<用户名输入框>

except_include<用户名,admin>

EXCEPT_EXISTS = "在【{somewhere}】中存在【{something}】{description}"

case-script's People

Contributors

venmotools avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.