当前位置: 首页 > 面试题库 >

Robotium和Jenkins UI测试错误

陶和歌
2023-03-14
问题内容

尝试在没有监视器的MacOS Mini上运行Robotium
UI测试时,我首先遇到了此问题。我添加了Robotium代码来测试屏幕上的UI点击,因为我们想在回归测试中添加一些UI自动化。我在Jenkins服务器上收到的错误是当solo.clickInList(X)运行时:

junit.framework.AssertionFailedError: AbsListView is not found!
     [exec]     at com.jayway.android.robotium.solo.Waiter.waitForAndGetView(Waiter.java:492)
     [exec]     at com.jayway.android.robotium.solo.Clicker.clickInList(Clicker.java:406)
     [exec]     at com.jayway.android.robotium.solo.Clicker.clickInList(Clicker.java:388)
     [exec]     at com.jayway.android.robotium.solo.Solo.clickInList(Solo.java:1081)
     [exec]     at com.cars.android.robotium.TestApplication.testSearch(TestApplication.java:29)

我发现Jenkins需要Xvnc插件来伪造UI,以便仿真器可以使用它。确保在特定作业中选中“显示仿真器窗口”。现在,我当前收到此错误。

/Applications/RealVNC/VNC\ Server.app :$DISPLAY_NUMBER -localhost -geometry 1280x1024 -depth 24 -SecurityTypes None

我现在在詹金斯遇到这个错误

Starting xvnc
[workspace] $ "/Applications/RealVNC/VNC Viewer.app" :77 -localhost -geometry 1280x1024 -depth 24 -SecurityTypes None
FATAL: Cannot run program "/Applications/RealVNC/VNC Viewer.app" (in directory "/Users/Shared/Jenkins/Home/jobs/Android/workspace"): error=13, Permission denied
java.io.IOException: Cannot run program "/Applications/RealVNC/VNC Viewer.app" (in directory "/Users/Shared/Jenkins/Home/jobs/Android/workspace"): error=13, Permission denied

问题答案:

您没有说Robotium测试是否在您的本地计算机上运行,​​所以我不知道Robotium代码本身是否正确。

但是关于Xvnc设置,我看到几个可能的问题:

  1. “ VNC Viewer.app”听起来像是VNC 客户端 ,而不是X11 服务器

  2. 据我所知,您不能仅在命令行上运行“ /Applications/Foo.app”。您通常需要运行实际的二进制文件。类似于“ /Applications/Foo.app/Contents/MacOS/foo”。



 类似资料:
  • robotium 是 Android 平台上类似 Selenium 的集成测试工具。有JUnit基础的开发者,还是非常容易上手的。 Robotium 是一款国外的Android自动化测试框架,主要针对Android平台的应用进行黑盒自动化测试,它提供了模拟各种手势操作(点击、长 按、滑动等)、查找和断言机制的API,能够对各种控件进行操作。Robotium结合Android官方提供的测试框架达到对

  • 在程序运行过程中,总会遇到各种各样的错误。 有的错误是程序编写有问题造成的,比如本来应该输出整数结果输出了字符串,这种错误我们通常称之为bug,bug是必须修复的。 有的错误是用户输入造成的,比如让用户输入email地址,结果得到一个空字符串,这种错误可以通过检查用户输入来做相应的处理。 还有一类错误是完全无法在程序运行过程中预测的,比如写入文件的时候,磁盘满了,写不进去了,或者从网络抓取数据,网

  • 在程序运行过程中,总会遇到各种各样的错误。 有的错误是程序编写有问题造成的,比如本来应该输出整数结果输出了字符串,这种错误我们通常称之为bug,bug是必须修复的。 有的错误是用户输入造成的,比如让用户输入email地址,结果得到一个空字符串,这种错误可以通过检查用户输入来做相应的处理。 还有一类错误是完全无法在程序运行过程中预测的,比如写入文件的时候,磁盘满了,写不进去了,或者从网络抓取数据,网

  • 问题内容: 如何重新启动使用Robotium结束的活动? 以下内容不会重新启动活动:(测试完成) 您如何重新启动以结尾的活动? 最小的例子 要重现这样的最小测试,请创建一个项目及其测试项目: 将Robotium jar复制到该文件夹。将此代码粘贴到文件中: 在测试文件夹中,执行 再次提出问题:如何重新启动以结尾的活动? 问题答案: 正如@IHeartAndroid在他对这个机器人问题的回答中所说(

  • 我们经常会看到很多程序员大部分的"编程"时间都花费在检查bug和修复bug上。无论你是在编写修改代码还是重构系统,几乎都是花费大量的时间在进行故障排除和测试,外界都觉得我们程序员是设计师,能够把一个系统从无做到有,是一项很伟大的工作,而且是相当有趣的工作,但事实上我们每天都是徘徊在排错、调试、测试之间。当然如果你有良好的习惯和技术方案来直面这些问题,那么你就有可能将排错时间减到最少,而尽可能的将时

  • 如何从Jenkins运行Android emulator来运行测试?在Execiute Windows bath comand中写入时,运行emulator的命令: 仿真器-avd测试仪 运行我的测试,我有这个错误: ... ... 我设置路径为Android_SDK,java在Windows路径和它的工作从cmd。我应该怎么做才能运行模拟器?