我一直在研究Flex组件,我想为它编写一些自动化测试.问题是,我看过的UI测试工具(FlexMonkey和Selenium Flex API)没有模拟"足够":
到目前为止出现的大多数错误都与Flex处理拖放的方式有关,这些库无法准确模拟.例如,我需要测试一个组件下半部分发生"drop"事件的情况 - FlexMonkey和Selenium Flex API都不能这样做(它们可能会模拟鼠标事件,但它们不会包含坐标).
那么,是否有任何"好"的方法来自动化这种测试?
编辑:经过大量研究,看起来唯一可以做到这一点的软件是iMacros,它只是Windows而且接口是...缺乏.所以我要写自己的.基本上,它将放置HTTP接口,java.awt.Robot因此代码(以任何语言)可以模拟鼠标/键盘事件.如果你有兴趣,PM我和我会告诉你更新.
编辑2:我在BitBucket上发布了我写的第一个版本的Blunderbuss:http://bitbucket.org/wolever/blunderbuss/.你需要Jython来运行它(http://www.jython.org/),但之后这个flex-client例子应该可行.
Blunderbuss的视频在Vimeo居住:
目前这仍然是一个概念验证,因为我没有周期来清理它并使它更有用......但也许有足够的人打扰我会给我那个时间:)
有没有办法在SWT-Widgets上自动生成ID,以便UI-Tests可以引用它们?我知道我可以使用seData手动设置id,但我想以一种通用的方式为现有应用程序实现此功能.
我正在测试一个加载powerpoint(.ppt或.pptx)文件的应用程序插入它.当文件加载到应用程序内部时,应用程序给出了类似powerpoint的感觉和一些额外的设置.当我尝试自动化应用程序时,我单击一个按钮将powerpoint文件加载到应用程序中.加载过程后,白色框架无法继续播放.
当我再次重新启动相同的测试时,我得到了" 检测到NonComVisibleBaseClass "异常.
我只能在重新启动整个应用程序后继续我的测试.有人遇到过这种问题吗?您的答案对我的测试非常有帮助.
我正在寻找Coded UI测试的一些替代方案.不幸的是,我只运行Visual Studio 2013专业版
我已经看过Selenium for Firefox,但这似乎不适用于我的Firefox版本
如何使用selenium(chrome驱动程序)抑制或自动关闭客户端证书选择对话框?
我无法使用此证书,因为它存储在芯片卡上,我必须输入PIN码.如果没有可用的卡,我们的网站使用基于凭证的登录,我想测试这个.
selenium google-chrome ui-testing client-certificates selenium-chromedriver
我的问题与此问题密切相关,因为我正在创建 Xamarin 应用程序并希望自动测试 UI。我已经按照官方文档中的说明进行操作,但是一旦我完成了最后一步,即添加Xamarin.Calabash.Start();到 AppDelegate.cs 中,我的 Mac 就会不断询问我,它是否允许来自应用程序的传入连接。
我可以在应用程序每次启动时和开始测试时手动确认防火墙规则,因为应用程序会一遍又一遍地重新部署。但是 - 如果我不这样做,奇怪的事情就会开始发生:有时它会起作用(我不确定为什么,可能是我之前手动启动了该应用程序),有时我会遇到类似的异常
SetUp : System.Exception : Unable to start CalabashHostStrategyProxy
有什么方法可以永久启用我的应用程序(尤其是测试云代理部分)以接受传入连接?或者至少以某种方式自动摆脱这个对话框?
如果我在 Xamarin 测试云中运行测试,这会影响我的测试执行吗?
Xcode 7.3
开放式雷达:rdar:// 25456632
在我的应用程序中,我有一个字符串枚举,用于定义一些可访问性标识符。例如
enum AccessibilityIds:String {
case ButtonFoo
}
Run Code Online (Sandbox Code Playgroud)
我建立了一些UI测试,我想在其中搜索控件。所以我做这样的事情:
XCUIApplication().buttons[AccessibilityIds.ButtonFoo.rawValue]
Run Code Online (Sandbox Code Playgroud)
XCode认为这很好,并且不指示任何错误。但是,当我编译UI测试时,出现此编译器错误:
Undefined symbols for architecture x86_64:
"myApp.AccessibilityIds.rawValue.getter : Swift.String", referenced from:
(extension in myAppUITests):__ObjC.XCTestCase.fooButton (myApp.AccessibilityIds) -> Swift.Bool in TestCaseExtensions.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Run Code Online (Sandbox Code Playgroud)
将UI测试目标与单元测试目标交叉引用(可以很好地编译并使用枚举),我发现UI测试没有设置测试主机。设置它意味着UI测试代码现在可以编译,但是测试本身随后由于SIGKILL和错误而失败:
testFooButton() encountered an error (Lost connection to test manager service. If you believe this error represents a bug, ...
Run Code Online (Sandbox Code Playgroud)
因此,看来我无法在UI测试代码中访问枚举rawValues。还有其他人遇到这个问题并设法解决吗?
在我的 espresso 测试中,我想点击带有 id 的文本元素的某个部分SwitchTextView。全文为“您是会员吗?使用电子邮件登录” 当您单击使用电子邮件登录时,它会切换页面视图。
当我使用onView(withId(R.id.switchTextView)).perform(click());测试通过但因为在我想要点击的文本之前有初始文本不会改变视图。如何确定并仅触摸“使用电子邮件登录”文本?
我想测试登录单击是否在仪表板屏幕上正确导航。
有没有办法做到这一点?
我目前的测试代码就像
func testExample() {
let usernameTextField = app.textFields["Username"]
usernameTextField.tap()
usernameTextField.typeText("abc@gmail.com")
let passwordTextField = app.textFields["Password"]
passwordTextField.tap()
passwordTextField.typeText("abc123")
app.buttons["Login" ].tap()
//let loginButton = app.staticTexts["Login"]
//XCTAssertEqual(loginButton.exists, true)
app.navigationBars["UIView"].buttons["Back"].tap()
}
Run Code Online (Sandbox Code Playgroud) 如何构建查询以通过静态文本获取包含另一个元素的元素。
示例:获取包含带有文本“cool cell”的标签的第一个表格单元格
我需要它,因为我有不同的单元格,我想获得一个包含特定文本的单元格。请注意,我对获取单元格很感兴趣,因为我需要确保该单元格包含其他元素。目标是确保标题为“I'm a cell”的单元格也有一个带有文本“cool”的标签
ui-testing ×10
ios ×3
swift ×3
testing ×3
java ×2
apache-flex ×1
eclipse-rcp ×1
enums ×1
firewall ×1
flash ×1
gui-testing ×1
macos ×1
selenium ×1
swt ×1
xamarin ×1