软件自动化测试范畴很广,理论我就不说了,只针对我这次选的题目——Java自定义组件的测试,从Java事件机制的基础说起,其中有一小部分关于开源软件测试框架Abbot的简单介绍

还是先说说Abbot吧,Abbot可以支持Java GUI组件从单元测试到集成测试,简单地说,单元测试时,你可以使用Abbot的一些类库,把你要测试的GUI扔给某个方法,然后Abbot可以查找某个组件,比如特定按钮,然后对那个按钮调用一下 click(我的按钮),就可以实现“点击”的效果, 你会看到屏幕上的鼠标移动到那个按钮上并点击,很有趣吧,当然你可以手工编写一堆代码控制鼠标移动到那个按钮上并点击,但是那样很麻烦,Abbot帮你封装了很多底层的操作。

对于一个已经做好的GUI,Abbot也可以进行脚本录制,也就是你在你的GUI上操作,Abbot自动记下你的动作,以脚本形式保存起来,以后你还可以进行重放。下面是官方介绍的一部分翻译:

Abbot 框架

abbot提供了一个框架测试你的GUI代码,而不用考虑你的代码的当前状态。如果你喜欢进行测试驱动的开发,那么abbot提供相关工具为你生成单元测试代码。如果你已经有一堆代码但不是基于单元测试的,abbot也可以帮你生成脚本

总的来说,abbot测试首先要获得组件的引用,然后要么模拟用户操作,要么对组件的状态进行断言。abbot提供ComponentReference获得组件的句柄,以及扩展的、类似robot的对象,用来模拟用户行为。这些操作既可以通过脚本,也可以通过java代码来实现

abbot的目标:

1.用户输入的可靠重现

GUI测试不彻底的一大原因就是不能很好的重现用户输入

2.利用脚本控制动作

使用动态解析的脚本,省去了写新的测试代码的麻烦,并且这些脚本还能直接调用java单元测试的代码

3.降低组件之间的绑定

如果修改了原有的GUI布局,组件的位置、大小改变了,那么之前的测试代码可能会失效(比如找不到新的组件位置)在不同平台下,组件的位置大小都可能改变,那样测试框架就不能跨平台了。abbot使用查询机制,只要能查询到组件,即使位置大小改变了,abbot一样可以运行

4.底层使用低级的操作系统事件来实现高级的语义行为

java.awt.robot提供了便利的方法直接生成事件,但是其功能太过基础,不方便使用,abbot在其上抽象出方便的接口(正如Swing对基本窗口的抽象一样)。通过抽象语句,你可以很容易的推断出测试代码的功能,比如像下面这样:

Click on 100, 100

Move to 110, 110

Press down key

Press down key

Click on 110, 110

Select "blue" from the color list

5.支持动态录制高级语义事件

你可以手工编辑xml文件,也可以一条条修改测试语句,但是有了Costello editor ,电脑会帮你记录所有用户动作,并自动生成脚本

6.用户动作的记录和生成是可扩展的

你可以自己扩展上述框架,以支持自定义的组件。虽然说用基本的robot可以在不修改测试代码的情况下测试任何东西,不过使用扩展的好处在于:你的代码更加抽象,就好像调用CalRow(10)而不是click(x,y),其中x、y指的是第10行的中心坐标

java自动化测试_Java自动化测试(一)相关推荐

  1. Java+webdriver的自动化测试框架搭建

    一.webdriver简介 webdriver是一种支持web应用程序自动化测试的工具,利用浏览器原生的API,封装成一套更加面向对象的selenium webdriver API,直接操作浏览器里的 ...

  2. 测试小白基于java的selenium自动化测试环境搭建

    本人是一个软件测试小白,自己在研究自动化测试时,真的入了不少坑,直到现在,才勉强将环境搭建了起来. 在此,我随随便便总结了一下基于java的selenium自动化测试环境搭建,送给正在学习软件测试的你 ...

  3. 跪了!!BATJ各位大佬联合教你Java进行Appium自动化测试的实现

    本文介绍如何在eclipse中使用Java进行Appium自动化测试 前提条件 1.配置好了java环境 2.安装了eclipse 3.安装了Maven 4.安装了Android模拟器.我用的夜神模拟 ...

  4. 怎么自学python自动化测试-学习自动化测试,如何学习Python语言?

    一.Python常用领域Python用于简单脚本编程,如编写2048小游戏或12306的自动抢票软件: Python用于系统编程,如开发系统应用: Python用于开发网络爬虫: 有资料奉上,可以看看 ...

  5. 【软件测试】什么样的项目适合做自动化测试?自动化测试有需要那些技术?

    少部分从事软件自动化测试,会接触底层服务端.API .Web.APP.H5 等等,对自动化有了解. 想做自动化,首先得了解一下自动化测试的一些常见问题. 也是面试时,必问的一些问题(这么简单的面试问题 ...

  6. 软件测试 自动化测试 Web自动化测试01 selenium 定位元素方法 元素操作 自动化脚本开发

    文章目录 1 自动化测试概述 1.1 测试的目的 1.2 自动化测试的优点 1.3 自动化测试的缺点 1.4 自动化测试工具 1.5 自动化测试流程 2 selenium基础 2.1 selenium ...

  7. 【自动化测试】自动化测试框架与工具

    文章目录 1)什么是自动化测试框架? 1.1 什么是框架? 1.2 什么是自动化测试框架? 1.2.1 优点: 1.2.2 框架的基本组件 1.需要配置文件管理: 2.业务逻辑代码和测试脚本分离 3. ...

  8. 【源码+教程】Java课设项目_12款最热最新Java游戏项目_Java游戏开发_Java小游戏_飞翔的小鸟_王者荣耀_超级玛丽_推箱子_黄金矿工_贪吃蛇

    马上就要期末了,同学们课设做的如何了呢?本篇为大家带来了12款热门Java小游戏项目的源码和教程,助力大家顺利迎接暑假![源码+教程]Java课设项目_12款最热最新Java游戏项目_Java游戏开发 ...

  9. 自动化测试、自动化测试框架和云测试相关论文列表

    论文列表 基于Android系统的自动化测试用例的实现和优化,彭洪超,南京邮电大学,2020; 智慧社区应用系统自动化测试设计与实现,贾秀秀,南京邮电大学,2020:导师:杨龙祥; Web和App软件 ...

  10. 自动化测试与自动化测试介入时机

    转自:http://blog.sina.com.cn/s/blog_6c9670bb0101sl97.html 先mark下,关注: 1.各类测试理论定义,相应工具 2.现在,在阿里不管是接口测试还是 ...

最新文章

  1. 使用 CocoaPods 给微信集成 SDK 打印收发消息
  2. 16、设计模式-行为型模式-命令模式
  3. [游戏引擎中文版]YU-RIS 4.5 最新中文支持版
  4. 面试必会系列 - 1.5 Java 锁机制
  5. OpenCV——绘制基本图形
  6. Win32中常用消息
  7. Linux中创建新用户并赋予指定目录的相关权限
  8. 行存储索引改换成列存储索引_列存储索引增强功能–数据压缩,估计和节省
  9. C# Windows 窗体的.Net 框架绘图技术
  10. ReactiveCocoa中信号的使用
  11. SQL Server-聚焦使用索引和查询执行计划(五)
  12. python lxml 模块_Python lxml模块安装教程
  13. 开源智能手表TTGO-WATCH上手把玩(0)环境配置
  14. Android 眼睛 显示隐藏密码(ImageView)
  15. 基于STM32和阿里云的智能家居
  16. 提示GuestAdditions versions on your host (6.1.32) and guest (6.1.22) do not match错误的解决方法
  17. ajax请求参数为数组解决方案
  18. HDU - 6769
  19. PPT实用功能——布尔运算
  20. 营销文案的“瑞士军刀”:阿里妈妈智能文案多模态、多场景探索

热门文章

  1. 树形背包O(n * v^2)入门
  2. 正则表达式 相关教程
  3. Lowest Common Multiple Plus
  4. .NET Framework 中的并行编程
  5. Qt上位机 实现串口助手和网络助手
  6. MySQL与Oracle的DDL、DML语法对比(含可重复执行SQL脚本编写方式)
  7. qt解决中文乱码问题。总结一下
  8. gis 空间分析 鸟类栖息地选取_鸟类的栖息地选择
  9. C++11中智能指针的原理、使用、实现
  10. C++#ifndef/#define/#endif的用法