我正在使用TeamCity进行CI构建,并且我想在Windows XP和Windows 7虚拟机上设置第二个用于运行自动UI测试的构建.
我想构建的工作方式如下:
自动UI测试是使用NUnit编写的,需要直接在测试虚拟机上运行(它们无法远程运行).重要的是,如果测试失败,它将出现在TeamCity构建日志中,并且构建失败.我宁愿不在任何一个测试虚拟机上安装VS或TeamCity构建代理.
似乎大多数情况下应该可以使用psexec.exe.有什么替代方案(最好是开源的)我应该看一下吗?
AutomationProperties.Name和之间的"CodedUI测试构建器"没有区别x:Name.但第一个可以覆盖第二个.此外,AtomationProperties.Name支持数据绑定,x:Name当然不支持.
我们知道如果您使用MVVM模式,最好只x:Name在需要时使用.
所以应该AutomationProperties.Name优先考虑x:Name?
我试图通过UI Automation自动化用户的路径.理想情况下,a中的用户位置MKMapView将根据我在自动化脚本中表达的路标列表进行更新:
var target = UIATarget.localTarget();
var waypoints = [
{location: {latitude: 37.33170, longitude: -122.03020}, options: {course: 180}},
{location: {latitude: 37.33170, longitude: -122.03022}, options: {course: 180}},
{location: {latitude: 37.33170, longitude: -122.03025}, options: {course: 180}},
{location: {latitude: 37.33170, longitude: -122.03027}, options: {course: 180}},
{location: {latitude: 37.33170, longitude: -122.03030}, options: {course: 180}},
{location: {latitude: 37.33170, longitude: -122.03032}, options: {course: 180}},
{location: {latitude: 37.33170, longitude: -122.03035}, options: {course: 180}},
{location: {latitude: 37.33170, longitude: -122.03037}, options: {course: 180}},
{location: {latitude: 37.33170, longitude: …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用Espresso测试ActionPage的文本.但是,当我运行Ui Automation Viewer时,我可以看到ActionPage显示为View而不是ActionView,它没有TextView.
我试过像这样检查ActionLabel文本,但这不起作用:
onView(withClassName(equalToIgnoringCase("android.support.wearable.view.ActionLabel"))).check(matches(withText("MyText")));
Run Code Online (Sandbox Code Playgroud)
我有一个我的ActionPage的ID,所以我可以找到它onView(withId(R.id.actionPage))但我不知道如何访问它的孩子来获取ActionLabel文本.我尝试编写自定义匹配器,但这也不起作用:
onView(withId(R.id.actionPage)).check(matches(withChildText("MyText")));
static Matcher<View> withChildText(final String string) {
return new BoundedMatcher<View, View>(View.class) {
@Override
public boolean matchesSafely(View view) {
ViewGroup viewGroup = ((ViewGroup) view);
//return (((TextView) actionLabel).getText()).equals(string);
for(int i = 0; i < view.getChildCount(); i++){
View child = view.getChildAt(i);
if (child instanceof TextView) {
return ((TextView) child).getText().toString().equals(string);
}
}
return false;
}
@Override
public void describeTo(Description description) {
description.appendText("with child text: " + string);
}
};
}
Run Code Online (Sandbox Code Playgroud)
有人可以帮助我,ActionLabel似乎没有自己的id,它不是TextView ...我怎么能检查它里面的文字?
+------>FrameLayout{id=-1, visibility=VISIBLE, width=320, height=320, …Run Code Online (Sandbox Code Playgroud) 我必须定期测试电影租赁网站的可用性和功能.我写了一个Windows程序,它能够根据脚本自动化Web浏览器,所以这个任务基本上解决了.现在我必须自动化此Web应用程序的移动版本:原生iOS应用程序和原生Android应用程序.
这些应用程序是封闭源代码,因此无法以任何方式进行修改.我认为测试应用程序应该部署在测试设备(iPhone,iPad,Galaxy Tab,Galaxy S II)上,但我必须能够远程控制它.我的意思是,我想在测试设备和PC之间建立连接,将测试脚本从PC上传到设备,运行它们,然后将测试结果下载到PC.测试脚本应启动要测试的应用程序,操纵其GUI(填充编辑框,按钮等),并以某种方式跟踪其响应,例如通过分析GUI(某些GUI元素的存在,其标题等) ,分析屏幕截图和/或检查IP数据包.
我为Windows编写了许多类似的测试程序:我使用了ShellExecute,PostMessage,FindWindow,WinPcap库等,所以我知道这样的程序应该如何工作.但由于我从未编写过移动操作系统的应用程序,我甚至不知道iOS和Android是否有类似的API和库.
我想知道从哪里开始,我的意思是,可以使用哪些SDK和开发人员工具来编写这样的应用程序.我也对商业解决方案感兴趣.我真的很感激任何帮助.
我想为Android应用程序设置集成测试,我想知道什么是更好的:Robotium或最近推出的uiautomator.
我以前有使用Robotium的经验,这个框架对于集成测试来说非常棒.但最近推出的uiautomator看起来也不错.
目前我看到uiautomator有几个限制:
另一方面,此工具允许您摆脱测试中的应用程序沙箱,并且它独立于程序包,因此可以一起测试多个应用程序.
另外我知道用Maven,Robotium和像Jenkins这样的CI进行设置是相当容易的,但是我不确定uiautomator是否那么容易.
我想问一下uiautomator还有其他陷阱吗?或者最好坚持使用Robotium?
所以我试图使用Python登录Quora,然后刮掉一些东西.
我正在使用Selenium登录该网站.这是我的代码:
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
driver = webdriver.Firefox()
driver.get('http://www.quora.com/')
username = driver.find_element_by_name('email')
password = driver.find_element_by_name('password')
username.send_keys('email')
password.send_keys('password')
password.send_keys(Keys.RETURN)
driver.close()
Run Code Online (Sandbox Code Playgroud)
现在的问题是:
找到并填写登录表单需要大约4分钟,这非常缓慢.我能做些什么来加快这个过程吗?
登录时,如何确保没有错误?换句话说,我如何检查响应代码?
如何用硒保存饼干,以便我可以在登录后继续抓取?
如果没有办法让硒更快,那还有其他的登录方式吗?(Quora没有API)
我必须测试一个Web应用程序,其中包含一个用于从本地文件系统上载文件的拖放区域.我的测试环境基于C#.
对于我使用过Selenium的自动化测试,但是无法从文件系统中拖动文件.上传区域是div标签(无input标签).那么最好的方法是什么?AutoIt(可以放入网络浏览器)吗?Sikuli?
我正在尝试使用tesseract ocr工具从视频游戏中提取ocr文本(我正在预处理屏幕截图并将它们传递给命令行工具tsv输出并解析它).
我想将它用于测试自动化,与硒网测试不同.那是我希望能够等待元素出现而不是睡觉和点击按钮(主要是菜单).
为了能够做到这一点,我需要能够始终如一地找到相同的按钮文本,并在一系列视频游戏中找到尽可能多的文本.为了抽象,我更喜欢每个游戏的预处理/ tesseract选项是相同的.
我可以添加每个游戏中遇到的每个单词的字典,但我不愿意.
我有一个设置,我可以测试预处理/ tesseract选项的许多不同组合,并查看结果的单词.
我已经尝试将屏幕截图(70-90 dpi)吹了5次,并在将其传递给tesarect之前将其设置为灰度.
我可以使用哪些其他技术来提高结果的数量和准确性?我应该看哪些tesseract旋钮?我可以添加任何其他有用的预处理吗?
PS我发现,如果我将图片放大到两倍长/宽,tesseract似乎因为图像的内存耗尽而爆炸.有静态限制吗?我可以找到它,所以我可以炸掉最大尺寸附近的图像吗?我可以调整吗?
我需要能够以编程方式探索GTK GUI的结构.我有GtkWidget,我想找到那个小部件的任何孩子.现在我知道GtkContainer有一个查找子项的功能,而GtkContainer是从GtkWidget派生的.
无论如何我可以检查一个小部件是否是一个GtkContainer,然后执行演员表?如果没有,有没有其他方式我可以发现GtkWidget是我的孩子?