说到计算器这个被测对象,大家的印象一定是简单,简单在于一方面它的

每一个对象都是按键,另一方面他的功能,逻辑也都很简单,四则运算;

当然我们这里的win7下的计算器不是科学计算器。在前面我们已经探讨过

计算器的一位素加法,俩位数的加法以及参数化,相信有耐心并且又有足

够细心的同学已经自己验证过减法、乘法、除法,并且已经熟练掌握了脚

本的录制、回放、参数化,这很好!那么接下来我们让我们通过计算器这

个简单的系统来学习属性检查点的设置。在这个实验里我们用win7旗舰版

的操作系统,安装AutoRunner自动化测试工具,

从开始菜单的附件里打开计算器:

在这里我们录制三位数的加法,然后我们来校验它的答案是否正确,这里

被加数是123,加数是456,最终的结果应该是579,下面我们一起来执行

这个过程:

第一步录制脚本:123+456=

脚本内容如下:

ar.window("CalcFrame_计算器").clickControl("Button_1", 17, 12, "left");

ar.window("CalcFrame_计算器").clickControl("Button_2", 19, 13, "left");

ar.window("CalcFrame_计算器").clickControl("Button_3", 17, 19, "left");

ar.window("CalcFrame_计算器").clickControl("Button_加", 16, 13, "left");

ar.window("CalcFrame_计算器").clickControl("Button_4", 20, 16, "left");

ar.window("CalcFrame_计算器").clickControl("Button_5", 11, 16, "left");

ar.window("CalcFrame_计算器").clickControl("Button_6", 13, 15, "left");

ar.window("CalcFrame_计算器").clickControl("Button_等于", 18, 34, "left");

接下来我们要检查结果,检查结果的时候我们要注意如下几个方面的细节:

1、计算器的结果不要清零

2、到自动化测试工具AR的对象库里查看结果对象的哪一个属性值是我们要的结果

3、计算器的结果这个对象不是一般的普通对象,这个时候我们要使用AR的强抓

对象的功能

下面我们进行第一步,强抓计算器结果对象,强抓功能的使用是同时按住ctrl+alt

键然后拖动鼠标,这里注意一定是同时按住ctrl+alt键;拖动鼠标不是点击;在强

抓前把鼠标悬停在结果显示区域,拖动的时候只要轻轻动一下鼠标就可以了。

在抓取计算结果对象点击录制按钮后要注意把全新录制的勾选去掉,然后再点

击确定按钮开始在原先的“123+456=”脚本基础上继续录制,如果全新录制的勾

选不去掉,那么之前的脚本将会被覆盖。

强抓计算器结果,如下:

结束录制后:自动化测试工具AR形成的脚本:

结束录制后:自动化测试工具AR形成的对象:

第9行脚本现在还不能被直接使用,这里我们可以把强抓对象形成的脚本删除,

然后通过快捷按钮“校验属性”来达到校验结果的数值的目的,首先我们删除再进

入对象库查看结果这个对象的哪一个属性值是计算结果579,然后返回工作界面

添加属性检查点:

点击校验属性按钮后需要在弹出的对话框里选择对象名称“Static_结果”;属性名

称“value”,填写期望值“579”,然后点击确定按钮。

点击确定后脚本会多出一行属性检查点语句:

此时完整的脚本为:

ar.window("CalcFrame_计算器").clickControl("Button_1", 17, 12, "left");

ar.window("CalcFrame_计算器").clickControl("Button_2", 19, 13, "left");

ar.window("CalcFrame_计算器").clickControl("Button_3", 17, 19, "left");

ar.window("CalcFrame_计算器").clickControl("Button_加", 16, 13, "left");

ar.window("CalcFrame_计算器").clickControl("Button_4", 20, 16, "left");

ar.window("CalcFrame_计算器").clickControl("Button_5", 11, 16, "left");

ar.window("CalcFrame_计算器").clickControl("Button_6", 13, 15, "left");

ar.window("CalcFrame_计算器").clickControl("Button_等于", 18, 34, "left");

ar.window("CalcFrame_计算器").checkProperty("Static_结果", "value", "579");

下面点击开始执行按钮,执行整个脚本:

执行结果如下:

首先得脚本出的是日志信息,日志信息有三部分内容,第一部分是脚本详细,

也就是完整的脚本信息,第二部分是执行明细,反应的是脚本执行过程中每

一行脚本的执行情况,第三部分是结果总结部分,在这个部分显示的是脚本

的执行最终结果,脚本执行是否成功都可以通过该部分查看。

在脚本输出区域可以看到,对应的脚本执行结果:

在这个部分显示的是脚本的执行最终结果,脚本执行是否成功都可以通过该部

分查看,同时脚本中如果发现错误,那么我们可以根据提示信息找到对应的位

置进行修改。

在做完参数化后就可以实现批量的属性校验,下面我们来做脚本的参数化:

最终的脚本为:

for(ParameterData pd : ar.getParameterDataList("calc.xls")/*.subList(0, 3)*/)

{

//ar.parameterData = pd;//ar.parameterData可用于脚本之间传递参数

ar.window("CalcFrame_计算器").clickControl("Button_清除", 16, 13, "left");

ar.window("CalcFrame_计算器").clickControl("Button_"+pd.getFrom("num1"));

ar.window("CalcFrame_计算器").clickControl("Button_"+pd.getFrom("num2"));

ar.window("CalcFrame_计算器").clickControl("Button_"+pd.getFrom("num3"));

ar.window("CalcFrame_计算器").clickControl("Button_加", 16, 13, "left");

ar.window("CalcFrame_计算器").clickControl("Button_"+pd.getFrom("num4"));

ar.window("CalcFrame_计算器").clickControl("Button_"+pd.getFrom("num5"));

ar.window("CalcFrame_计算器").clickControl("Button_"+pd.getFrom("num6"));

ar.window("CalcFrame_计算器").clickControl("Button_等于", 18, 34, "left");

String str = ar.window("CalcFrame_计算器").getProperty("Static_结果", "value");

ar.window("CalcFrame_计算器").checkProperty("Static_结果", "value", str);

}
在处理完脚本之后我们还要处理下对象,因为计算器的按键对象属性比较固定,

一般不宜修改,所以我们采用新增对象的功能,来增加对象库里面的对象,这

样也能保证脚本的正常运行。

为了保证脚本正常执行,我这里把数字按键1到9全部点击一遍,都添加到对象

库里:

然后点击开始执行按钮,得出执行结果:

AutoRunner 功能自动化测试项目实训之第一个实战案例(四)相关推荐

  1. AutoRunner 功能自动化测试项目实训之自动化测试技术(十七)

    十七.自动化化测试技术 通过计算机运行测试工具和测试脚本自动进行测试具有如下优点,缩短测试周期.多次重复运行相同的测试减少测试的单调性等,所以在测试工作中,应尽力实现测试自动化或扩大自动化测试的覆盖范 ...

  2. AutoRunner 功能自动化测试项目实训之crm客户管理系统试用安装包下载(二十)

    crm客户管理系统试用安装包下载地址:链接:https://pan.baidu.com/s/1eRYr20Tx8aAwISRtG1mPUw  提取码:jrj6

  3. AutoRunner 功能自动化测试项目实训之权重的修改(十五)

    每一个对象都有很多的属性,每个属性后都附带了一个权重,对于一些很 重要的属性默认的权重是100,而对于不是太重要的属性默认权重是0.当 回放某个对象动作时首先会在窗口中找到这一对象,之后再与之进行各项 ...

  4. AutoRunner 功能自动化测试项目实训之手工添加对象(十六)

    在以下情况下可能需要手工添加对象到对象库中: A.回放时出现某个对象在对象库中没有找到的错误: B.由于错误修改对象属性导致回放失败: C.某些对象在录制时不方便录制或是录制失败: D.不想重录已有脚 ...

  5. 项目实训(树莓派)(十四)树莓派4B下的ubuntu系统下的vim的使用

    目录 什么是vi/vim? 实验目的 实验环境 实验内容与步骤 什么是vi/vim? vi和vim都是在Linux系统下的标准的编辑器,你可以简单类比为就像是windows系统下的记事本一样,它们的功 ...

  6. 项目实训--Unity多人游戏开发(十四、UI昵称显示及转向同步问题)

    文章目录 开发功能 步骤及注意事项 项目其他记录 开发功能 在玩家上方生成UI文本,用于显示昵称.生命值或其他需要的数据. 2D中玩家左右转向时不能影响UI的显示. pun网络化时要同步玩家左右转向. ...

  7. 暑期项目实训——01

    项目名称:基于金融大数据的特征提取与趋势预测系统 2021.06.28 今天是项目实训的第一天所以我们只是对这个项目进行了大致的了解和小组分工,并没有对这个项目进行深入展开. 上午:导师对这个项目进行 ...

  8. 山东大学项目实训——地图圈系统——微信小程序(16)

    地图圈系统--微信小程序(16) 一.社区功能 二.项目代码 三.效果展示 一.社区功能 这次项目实训的社区功能是一个很大的模块,包括显示用户发布的文字及图片.用户选择的地点.发布的时间.点赞.评论等 ...

  9. 项目实训第一周(车道线检测)

    项目实训我主要负责计算机视觉方面,识别出车道线并据此导航.相关内容也更新在我的个人博客上个人网站 相关介绍 车道线检测如果用传统方法,识别速度较慢,效果不够好,容易受到多种因素的干扰,因此我们打算开发 ...

  10. 070-JAVA项目实训:仿QQ即时通讯软件系列讲座五(讲解用户注册功能)

    [上一讲]069-JAVA项目实训:仿QQ即时通讯软件讲座四(讲解系统登录功能)_CSDN专家-赖老师(软件之家)的博客-CSDN博客 本文主要内容是实现注册QQ用户功能,自动获取本机IP地址,与系统 ...

最新文章

  1. ruby on rails 之 延时执行代码
  2. SQL Server复制需要有实际的服务器名称才能连接到服务器
  3. php和python哪个工资高-Java、Python、Php学哪个好,哪个更有前景?
  4. 中国移动互联网2018年度报告:八大关键词总结与十大趋势
  5. 软考(5)--软件工程
  6. python就是玩具_极客老爹的玩具DIY之路:Python + Kids + Building Stuff == Fun
  7. 【转】Git Shell 基本命令(官网脱水版)
  8. 好的程序员就应该有强迫症
  9. mysql数据库sql注入原理_sql注入原理详解(一)
  10. Windows消息目录-消息大全
  11. RecycleView的普通适配器(另加RecycleView的格局格式)
  12. css宋体代码_family【CSS 字体】(宋体 黑体 微软雅黑)CSS文字字体
  13. Matlab中freqz函数使用
  14. Django视图层模版层全面解析全网最细的教程
  15. 尝试投了下 OR 被拒,领教了顶级期刊的审稿
  16. 重磅 | 消灭所有马赛克,谷歌宣布机器学习图像锐化工具RAISR
  17. 文末送书 | 手把手教你玩转,Python 会交互的超强绘图库 Plotly!
  18. 银行客户画像搭建与应用
  19. 制作拼多多app网页css,5+App下Mui框架开发仿拼多多App
  20. 【算法】leetcode 974. 和可被 K 整除的子数组(前缀和思想)

热门文章

  1. 使用Aria2下载百度网盘和115的资源
  2. DirectX11环境配置
  3. Arduino应用开发——LCD显示图片
  4. 计算机文化第15版快速测试答案,《计算机文化基》第1次作业及答案.doc
  5. python怎么画简单图片-只需 45 秒,Python 给故宫画一组手绘图!
  6. JSP从入门到实战视频教程
  7. Node.js+Express+MongoDB 建站实例
  8. 软件破解入门教程和解密手册——PE文件格式
  9. Casper与V神的博弈论(过节了,文末送大礼)
  10. PostgreSQL13.1-CN-v1.0中文手册.chm下载