在OpenTest 之 运行环境准备中介绍了运行自动化测试需要做的一些准备工作,本篇将继续给大家介绍OpenTest的脚本语法以及使用方法,通过学习后读者应该能够开始动手编写UI自动化测试脚本了。

关键字驱动测试

  在学习语法之前,需要了解一下关键字驱动测试方法的基本概念,这样有利于我们了解OpenTest语法的基本组成。

  关键字驱动测试是数据驱动测试的一种改进类型,主要关键字包括三类:

  1. 被操作对象(Item)
  2. 操作(Operation)
  3. 值(value)

  OpenTest就是采用关键字的形式将测试逻辑封装在数据文件中,测试框架只要能够解释这些关键字即可对其应用自动化,下面介绍一下OpenTest的语法。

用例示例

  1. 新增部门, 编码:Test  名称:自动化测试
  2. 选择前两行和【一审人员】
  3. 选中一审人员,设置部门管理的功能权限,取消部门管理下的全部展开和全部折叠功能
  4. 选择数据权限页签,添加PBS业务对象,设置可读表达式为 1=1
  5. 保存
  6. 删除当前新增记录

脚本示例

view sourceprint?
01 # To change this template, choose Tools | Templates
02 # and open the template in the editor.
03 require "inc.rb"
04 #require "TestCase/run_app.rb"
05   
06 打开模块 "部门管理"
07   
08 # 1 新增部门, 编码:Test  名称:自动化测试
09 添加
10 文本编辑框("编码").输入("Test")
11 文本编辑框("名称").输入("自动化测试")
12   
13 # 2 选择系统管理员再加任意几个岗位后
14 按钮("岗位.选择岗位").弹出窗口("选择岗位管理")
15   列表.选择行("一审人员")
16   按住Ctrl
17   列表.选择行(0)
18   列表.选择行(1)
19   释放Ctrl
20 关闭窗口(:确认)
21   
22 # 3 选中一审人员,设置部门管理的功能权限,取消部门管理下的全部展开和全部折叠功能
23 列表("岗位.岗位").选择行("一审人员")
24 页签("岗位.功能权限").选择
25 列表("岗位.功能权限.业务对象.业务对象").选择行("部门管理")
26 列表("岗位.功能权限.功能权限").分组("部门管理").单元格("全部展开""选择").去除勾选
27 列表("岗位.功能权限.功能权限").分组("部门管理").单元格("全部折叠""选择").去除勾选
28   
29 # 4 选择数据权限页签,添加[PBS]业务对象,设置可读表达式为 1=1
30 列表("岗位.岗位").选择行("一审人员")
31   
32 页签("岗位.数据权限").选择
33 按钮("岗位.数据权限.选择对象").弹出窗口("选择数据权限作用的对象")
34   列表.选择行("PBS")
35 关闭窗口(:确认)
36 列表("岗位.数据权限.数据权限").单元格("PBS模板,PBS""可读表达式").输入("1=1")
37   
38 # 5 保存
39 保存
40   
41 # 6 删除此用例新增记录
42 树形列表("部门管理").选择行("自动化测试")
43 删除

语法

  OpenTest采用了关键字测试驱动方法,它的常用语法也很简单,形式为:对象(参数).操作(值),语法如下:

对象 参数 操作 说明 示例 子对象 支持
按钮 <标题> 弹出窗口 <窗口标题> 标题为按钮上的文本内容 按钮("岗位.选择岗位").弹出窗口("选择岗位管理")  
    点击        
列表 <标题> 选择行 <名称> 标题为列表所在页签的标题,如果窗体只有一个列表,可以不加参数 列表.选择行("一审人员") 单元格(列)
      <行号> 行号从0开始 列表.选择行(0) 分组
分组 <标题>     根据标题获取列表的一个分组 列表("岗位.功能权限.功能权限").分组("部门管理") 单元格(行,列)
树形列表 <标题> 选择行 <名称> 标题为列表所在页签的标题,如果窗体只有一个列表,可以不加参数 树形列表("部门管理").选择行("自动化测试") 单元格(列)
单元格 <[行号,行标题], [列号,列标题]> 输入 <输入值> 作为列表、树形列表和分组的子对象 列表("岗位.数据权限.数据权限").单元格("PBS模板,PBS", "可读表达式").输入("1=1")  
  <[列号,列标题]>     作为行的子对象      
文本编辑框 <标题> 输入 <值>   文本编辑框("编码").输入("Test")  
下拉列表 <标题> 下拉选择 <名称>   下拉列表("项目信息").下拉选择("江南四期1、4区项目")  
下拉树形列表 <标题> 下拉选择 <名称串>   下拉树形列表("合同科目").下拉选择("建安工程类合同->建安工程和总包管理配合服务")  
页签 <标题> 最大化          
               
    打开模块 <模块标题>   打开模块 "部门管理"  
    添加        
    保存        
    删除        
    关闭窗口 [:确认,:取消,]      
    按住Ctrl        
    释放Ctrl        
  标题样式为:
页签名称.[页签名称.]对象标题
           
               
             

本文转自 jingen_zhou 51CTO博客,原文链接:http://blog.51cto.com/zhoujg/518551,如需转载请自行联系原作者

信息系统开发平台OpenExpressApp:【OpenTest】 之 语法及其使用介绍相关推荐

  1. 信息系统开发平台OpenExpressApp - 数据权限

    功能权限一般放在一般是放在MVC的controller层,在<信息系统开发平台OpenExpressApp - 功能权限>介绍了OEA基本的功能权限,我们是通过统一配置的.作为数据应用产品 ...

  2. 信息系统开发平台OpenExpressApp - 功能权限

    在<信息系统开发平台OpenExpressApp - 用户权限模块设计>中对RBAC以及在OEA中的涉及进行了简要介绍,上篇<信息系统开发平台OpenExpressApp - 用户管 ...

  3. 信息系统开发平台OpenExpressApp - 应用模型ApplicationModel

    下图为OpenExpressApp的系统架构图,其中在应用模型是作为一种元数据贯穿于整个架构,应用模型运行在OpenExpressApp框架之上.应用模型是OEA的核心,理解好应用模型才能更好的使用O ...

  4. 信息系统开发平台OpenExpressApp -如何部署OEA应用

    BloodyAngel 把智能部署写的比较清楚了<信息系统开发平台OpenExpressApp - ClickOnce智能部署>,我在这里再进行一些补充. 如果用过OpenExpressA ...

  5. 信息系统开发平台OpenExpressApp - 支持日志功能

    一般信息系统都有审计功能,现在给OpenExpressApp增加简单的日志功能,主要就是记录用户的一些操作(如登录.打开模块.查看数据.点击按钮等)或者系统操作时的一些信息收集(比如保存错误等).为了 ...

  6. 信息系统开发平台OpenExpressApp - ClickOnce智能部署

    这里讲的是OpenExpressApp的部署方案.主要使用的是ClickOnce作为实施方案来实现:智能部署和智能客户端.不过,这里的使用方式跟以往的不太一样-- 部署概述 OpenExpressAp ...

  7. 信息系统开发平台OpenExpressApp:【OpenTest】 之 如何实现自动化测试框架

    本文更新版本已挪至   http://www.zhoujingen.cn/blog/4549.html ------------------------------- 在OpenExprssApp的R ...

  8. 开源信息系统开发平台之OpenExpressApp框架 1.1 春节飞虎版发布

    自 信息系统开发平台openexpressapp 1.0发布后到现在有4个月了,中间陆续发布了一些内容介绍的blog. OpenExpressApp不会带给大家创新性的技术,而是以务实的态度,将现有技 ...

  9. OpenExpressApp架构-信息系统开发平台

    本文已挪至   http://www.zhoujingen.cn/blog/1458.html 软件=商业+架构+过程+组织,前一阵子谈论的Scrum更多包含的是过程和组织,这篇主要关注的是架构. 作 ...

最新文章

  1. 牛X,试用了下 GitHub 上 2 万 Star 的第一抢票神器,3 秒钟抢到!
  2. 二分查找与二叉排序树
  3. java怎么自动提示关键词_Eclipse 实现关键字自动补全功能
  4. 跳转Activity闪退
  5. 3、Python 基础类型 -- List 列表类型
  6. [respberry pi3][suse] 配置docker
  7. python人人语音爬虫(登陆尚未完成,需要使用先登录在查cookie中的t)
  8. TX2Ubuntu16.04上安装 kinectV2
  9. 软考高级系统分析师上午历年真题
  10. java集合大家族之Map
  11. SQL 增删改查语句
  12. 大数据Spark “蘑菇云”行动第105课:Hive源码大师之路第三步:Hive序列化与反序列原理内幕和源码解析
  13. UberAir飞行汽车:一键乘坐飞机会变成现实吗
  14. DS1302的电子万年历_51单片机,年月日、星期、时分秒、农历和温度,带闹钟,全套资料
  15. win10 ipv4无网络连接
  16. 《宣州谢眺楼饯别校书叔云》赏析
  17. 如何选择适合自己的研究方法?定性vs定量vs混合方法研究
  18. html,bootstrap,js,jquery图片点击模态窗口放大图片,可以滚动常看长图
  19. 我平时总结的几个Python编程小技巧
  20. 椭圆 标准方程 离心率 圆的标准方程

热门文章

  1. php ldap 模块,不重新编译为PHP增加LDAP模块的支持
  2. linux磁盘资源,liunxCPU和内存,磁盘等资源,
  3. html5怎么改为vue_Vue实战——编程式导航打开新窗口,登录状态本地存储
  4. 去除标题_你真的会写标题吗?企优托教您打造黄金标题离不开这三步
  5. mysql表添加完整性约束_SQL语句——完整性约束
  6. win7一直显示正在启动_win7系统中提高启动速度并且禁用某些软件启动的操作小技巧...
  7. docker公共存储库_Docker Hub公共镜像仓库的使用
  8. 大学期末考java编程题_大学java期末考试考试题和答案
  9. ecshop category.php?id=4,categoryall.php
  10. etl工程师 面试题_数据仓库工程师面试题笔试.doc