我想使用Sikuli来自动化在Mac和Windows浏览器中运行的GUI应用程序和Web应用程序。我目前的目标是测试,而更多的是用于GUI自动化,对于一个不幸没有低级自动化访问权限的团队来说,这是一个单调、重复的任务。
我想为GUI应用程序和Web应用程序建立一个或多个屏幕快照库,我可以在各个项目中重用它们。对于不同的应用程序,或者Web应用程序,在不同的浏览器/平台组合中,我经常运行相同的自动化步骤。
构建可重用的Sikuli屏幕快照库的一些好策略是什么?一些想法:
在所有这一切中,我假设我可以像Python模块一样导入库,从文档中可以看出这是可能的。
谢谢!
发布于 2012-03-09 23:56:04
还有一个名为"Sikuli的鲁棒GUI自动化库“的附加组件。
即使您最终没有使用这个库,通过查看它们对问题的实现,也可以学到一些非常好的经验教训。
几点建议:
我应该在Sikuli之外捕捉屏幕截图,然后切片/切掉这些图像,以提取出Sikuli内部的特定接口元素吗?
如何最好地跟踪屏幕截图,以获得类似GUI应用程序之间等效的界面元素?
命名约定!
\\firefox\\Button_OK.png
\\IE8\\Button_OK.png您还可以使用模式的“相似性”,在IE和Firefox上获得相同的图形(但没有假阳性)。这可能需要一些尝试和错误。
我应该构造包含屏幕截图的Python列表或字典吗?
这是一个很好的练习,在某些情况下对我很有帮助。但是,有时文件名比列表偏移量更好地记录脚本功能。
在所有这一切中,我假设我可以像Python模块一样导入库,从文档中可以看出这是可能的。
是的,你可以导入库。
发布于 2013-09-20 19:01:01
这看起来像是先锋推荐的一个很棒的图书馆。
我想在列表中再添加一个概念,那就是校准。
和任何测试行业一样,校准你的仪器是必须的。
在SQA/自动化领域,假设可能导致灾难。
设想情况:
周一,你决定你的Chrome提交按钮屏幕截图,用于锡库利供电的自动化。
您的工作速度很快,到了周二,您的测试套件将按照您的预期提供准确的传递/失败。
周五下午,就在啤酒时间前夕,这台机器自动升级到下一个Chrome的小版本,它修改的取消按钮刚好足以与Sikuli匹配作为提交按钮。
在离开办公室度周末之前,你看一看你的报告,你的报告似乎像往常一样运转良好,但你没有意识到它们给出的是假阳性,直到整个周末都坏了的星期一才意识到(但是,嘿,至少你周末过得很好!)
完全假设的情况,但希望强调需要“测试您的测试”或校准您的工具在一个写一次,运行-许多自动化环境。
解决方案:
为了减少像上面这样的问题情况,您可以设置一个(或多个)您知道与静态库中的屏幕截图交互的特定方式的网页。在每个测试套件/批量自动化项目运行之前,它将调用校准套件,并确保一切正常运行,无论是浏览器、文件管理器等等。
发布于 2014-10-10 15:38:14
作为Java开发人员(不确定这是否适用于许多sikuli用户):我推出了自己的实现。我创建了一个单例FileDirectory对象,它包含用于默认目录(资源、模式、屏幕快照)的方法。每当我让sikuli截图时,我都会将它保存到这个默认目录中(如果启动时不存在这个目录,就会创建这个目录)。我的应用程序会记录截图。使用html记录器,我可以链接到屏幕截图目录。因此,我的html日志中嵌入了与应用程序获取的图像的链接。
我知道这在一开始看起来很困难,但最终提供了所需的用例。
https://stackoverflow.com/questions/9641327
复制相似问题