我正在尝试使用C#/ .NET 4.0自动化外部应用程序的GUI
自动化的应用程序(AUT)是一个VB6应用程序.
在执行操作或单击按钮时,AUT有时会花费大量时间等待DB响应.当应用程序正在等待数据库结果时,应用程序本身处于空闲状态(不会注册很多CPU使用率),但它被阻止(您无法单击或与之交互).
- 到目前为止,我已经尝试将鼠标指针(沙漏)作为指示器,但有时应用程序被阻止但光标正常.所以这不可靠.
- 我已经尝试查看TotalProcessorTime的AUT的主要过程(这可以测量应用程序是IDLE还是BUSY),但就像我说的那样,有时应用程序是IDLE,并且仍然被阻止.
所以我想在stackOverflow人群的体验中加入,看看是否有人已经知道如何处理,和/或如果你对如何实现这一点有任何想法.
谢谢
编辑:
我一直在玩,只是发现了一些东西.
当AUT被阻止时,它不响应键盘或鼠标输入.但是,如果我将WM_LBUTTONCLICK消息发送到窗口,我可以确认消息正在处理(并且UI更改).
所以我猜他们在进行数据库调用时故意阻止应用程序.
我想测试我的应用程序处理方向更改(纵向/横向)的能力.我目前正在使用KIF,据我所知,它无法做到这一点.有没有办法以编程方式为iOS模拟器模拟旋转事件?
我不在乎它是否是一些未记录的私有API或黑客,因为这只会在测试期间运行,并且不会成为生产版本的一部分.
我注意到,在网格上并行运行多个selenium firefox测试时焦点事件处理无法正常工作.我已经确认,当我的每个测试单独运行并且考虑到操作系统的重点时,测试会在100%的时间内通过.我还在Chrome网格上并行运行测试,但没有看到问题.
我在google groups上找到了以下主题,建议在xvfb的单独实例中启动每个浏览器可能是一个可行的解决方案. https://groups.google.com/forum/?fromgroups#!topic/selenium-developers/1cAmsYCp2ho%5B1-25%5D
测试的部分失败是由于项目中使用的jquery日期选择器.日期选择器在焦点事件上启动,并且由于有多个selenium测试同时执行webdriver测试执行.click()命令,但焦点不会保持足够长的时间以显示日期选择器小部件.
.focus(function(){$ input.trigger("focus");});
我的问题是,如果有人之前已经看过这个并通过一些firefox配置文件设置解决了它.我已经尝试加载以下对该问题没有影响的属性.
profile.setAlwaysLoadNoFocusLib(true);
Run Code Online (Sandbox Code Playgroud)
测试失败的方式与之前在远程驱动程序Firefox配置文件中启用并加载该属性的方式相同.
我需要一种方法确保在100%的时间内触发焦点事件或解决多个firefox浏览器竞争焦点的问题.考虑到Chrome没有显示这些问题,我想知道它是否也可能被认为是Firefox中的一个错误.
谢谢!
uiautomator可以选择密码EditText吗?通过他们的android:hint属性查找其他EditText视图没有问题,但是uiautomatorviewer将所有密码字段显示为NAF.我尝试设置密码字段内容描述,但也不起作用.
如果不可能,如何设置测试人员手动输入密码的超时?
我一直在尝试使用 @pytest.mark.parametrize 参数化我的测试,并且我有一个营销人员 @pytest.mark.test("1234"),我使用测试标记中的值将结果发布到 JIRA。请注意为每个 test_data 的标记指定的值都会发生变化。本质上,代码如下所示。
@pytest.mark.foo
@pytest.mark.parametrize(("n", "expected"),[
(1, 2),
(2, 3)])
def test_increment(n, expected):
assert n + 1 == expected
Run Code Online (Sandbox Code Playgroud)
我想做类似的事情
@pytest.mark.foo
@pytest.mark.parametrize(("n", "expected"), [
(1, 2,@pytest.mark.test("T1")),
(2, 3,@pytest.mark.test("T2"))
])
Run Code Online (Sandbox Code Playgroud)
考虑到标记的值预计会随着每次测试而变化,如何在使用参数化测试时添加标记?
我使用uiautomatorviewer来做UI自动化.但是当我尝试拍摄快照以列出UI时,它显示adb未安装.
我知道从Xcode 4.2它开始可以UIAutomation通过命令行运行脚本.我试过这个,在模拟器中对我来说非常好.我想知道如何在实际设备中运行.我搜索并获得在设备上运行的命令,
instruments -w <device_id> -t /Developer/Platforms/iPhoneOS.platform/Developer/Library/Instruments/PlugIns/AutomationInstrument.bundle/Contents/Resources/Automation.tracetemplate
application -e UIASCRIPT
script -e UIARESULTSPATH <results path>
我应该在申请中给出什么,是通往ipa的路径还是其他什么?
提前谢谢
command-line instruments ui-automation ios ios-ui-automation
似乎Accessibility Identifier已添加该属性以允许UI自动化测试具有更稳定的ID.建议使用而不是Accessibility Label屏幕阅读器和VoiceOver使用的标签.
然而,这是有道理的:
Accessibility Identifier使用Export for localization功能时,为什么包含为可翻译的字符串资源?这使得多语言测试更加困难,因为它鼓励每种语言使用不同的ID.Accessibility Identifier与可访问性相关联?为什么不称它为UI自动化ID?Accessibility Identifier实际上是否实际呈现给屏幕阅读器,VoiceOver,其他?我使用Page Object Pattern with Java(https://code.google.com/p/selenium/wiki/PageObjects)构建了各种Test Automation框架.
我发现的两大好处是:
1)当你有一个页面实例时,你可以看到可用的方法(例如,输入主页.将显示你可以从主页调用的所有动作/方法)
2)因为导航方法(例如goToHomepage())返回后续页面的实例(例如主页),所以您只需编写代码并查看它所在的位置即可浏览您的测试.
例如
WelcomePage welcomePage = loginPage.loginWithValidUser(validUser);
PaymentsPage paymentsPage = welcomePage.goToPaymentsPage();
Run Code Online (Sandbox Code Playgroud)
这些好处与Java完美配合,因为IDE已知对象类型(或本例中的页面).
但是,使用JavaScript(动态类型语言),对象类型在任何时候都不固定,并且通常与IDE不明确.因此,我无法看到如何在使用JavaScript构建的自动化套件中实现这些优势(例如,使用Cucumber).
任何人都可以告诉我如何使用页面对象模式的JavaScript来获得这些好处吗?
有一个现有的基于JavaFX的应用程序,我应该为其编写自动化测试.我刚开始使用TestFX(版本4.0.13-alpha)并寻找建议,如何记录和识别应用程序的UI对象.我尝试使用代码来初始化按钮,但无法单击它.
Button button = new Button("click me!");
Run Code Online (Sandbox Code Playgroud)
我找到了这些 GUI检查工具,但不确定哪一个可以与TestFX一起使用.
ui-automation ×10
ios ×3
android ×2
testing ×2
.net ×1
adb ×1
c# ×1
command-line ×1
firefox ×1
instruments ×1
java ×1
javafx ×1
javascript ×1
localization ×1
pageobjects ×1
pytest ×1
python ×1
selenium ×1
testfx ×1
webdriver ×1
xcode ×1