python做自动化测试的优点,Jenkins自动化测试
软件自动化测试的范围很广,不再讨论理论,先从Java事件机制的基础来测试一下选取的——Java自定义组件。对开源软件测试框架Abbot做了简单介绍。
先说方丈。Abbot支持从单元测试到集成测试的Java GUI组件。简单来说,在单元测试中,我们使用Abbot的一些类库,把要测试的GUI扔进某个方法中,Abbot寻找某个特定的按钮等组件,然后在按钮上调用click(我的按钮)。是不是很有意思?当然也可以手动写很多代码来控制鼠标移动到那个按钮上点击,但是比较麻烦。雅培给你打包了很多基础操作。
对于创建好的GUI,Abbot还可以录制脚本,也就是你可以在你的GUI中操作。Abbot还可以自动记录你的行为,保存为脚本,以后播放。以下是官方介绍的部分翻译:
修道院框架
Abbot提供了一个测试GUI代码的框架,不管代码的当前状态如何。如果你喜欢测试驱动开发,abbot会给你提供生成单元测试代码的工具。如果你已经有很多代码,但不是基于单元测试,abbot也会帮你生成脚本。
通常,在abbot测试中,首先获得对组件的引用,以模拟用户交互或断言组件的状态。Abbot使组件引用获得组件的句柄,并提供一个类似于扩展机器人的对象来模拟用户的行为。这些操作可以通过脚本或java代码来执行。
住持目标:
1.用户输入的可靠再现
GUI测试不彻底的一个主要原因是它不能很好地再现用户输入。
2.通过脚本控制操作
使用动态分析的脚本可以省去编写新测试代码的麻烦,或者直接调用java单元测试的代码。
3.减少组件之间的绑定。
如果您修改了现有的GUI布局并更改了组件的位置和大小,先前的测试代码可能会无效。例如,如果找不到新元件的位置。在不同的平台上,组件的位置和大小可能会有所不同。这样测试框架就不能跨平台了。Abbot可以使用查询机制查询组件,即使位置大小发生变化,也可以像abbot一样执行。
4.使用低级操作系统事件实现高级语义行为。
Java.awt.robot提供了一个很有用的直接生成事件的方法,但是它的功能太基础了,不好用。Abbot在上面抽象出有用的接口(就像Swing抽象出基本的窗口一样)。抽象语句让你很容易猜测测试代码的功能。例如,情况如下:
点击100,100。
移动到110,110
按向下键
按向下键
点击110,110。
从颜色列表中选择“蓝色”
5.支持高级语义事件的动态记录。
可以手动编辑xml文件,也可以逐个修改测试语句,但Costello editor允许计算机记录所有用户的动作,并自动生成脚本。
6.用户动作的记录和生成是可扩展的。
您可以自行扩展上述框架,以支持定制组件。虽然基本机器人不用修改测试代码就可以测试任何东西,但是使用扩展的好处就像是用代码调用calrow(而不是click(x,y))一样,其中x和y指向10号线的中心坐标。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。