【问题标题】:Does MonkeyTalk support PhoneGap Sencha Touch based Mobile Hibrid Application?MonkeyTalk 是否支持基于 PhoneGap Sencha Touch 的 Mobile Hibrid 应用程序?
【发布时间】:2013-04-03 08:42:29
【问题描述】:

我们有一个基于 PhoneGap Sencha Touch 的移动混合应用程序,我想在自动化测试中使用 MonkeyTalk。 有人能帮我吗?提前致谢。

我安装了monkeytalk-1.0.40,效果很好。有了它,我可以很好地测试原生应用程序。

我用PhoneGap构建了一个Hybrid Application,很简单,只有1个代码是加载Sencha Touch示例页面: super.loadUrl("http://dev.sencha.com/deploy/touch/examples/production/index.html");

我还按照 MonkeyTalk 的用户指南 (www.gorillalogic.com/monkeytalk-documentation/monkeytalk-getting-started/install-agent/android) 做了所有事情。

然后,一切准备就绪,将简单的 Hybrid Application 部署到设备模拟器。 MonkeyTalk IDE 也可以连接到应用程序。 我记录了一些动作(点击一个字段并在其中输入了一些字符),但只记录了一些“WebView * 点击”动作(没有点击位置信息)。回放的时候也可以回放一些点击动作,但是没有位置,点击位置不对。

所以,我必须手动编写一些操作。我发现有时“标签点击”操作可以工作,但有时它会点击不正确的元素。 当我进入表单页面(Kitchen Sink -> 用户界面 -> dev.sencha.com/deploy/touch/examples/production/index.html 上的表单)时,我播放了一个动作来点击一个字段,整个 UI移动到屏幕的左下角,很奇怪。 而且,我尝试向“名称”字段发送一些文本,但没有任何反应。

你知道问题出在哪里吗?有可能修复吗?我该怎么办?

非常感谢!

【问题讨论】:

  • 你能帮忙吗?非常感谢! 〜帮助〜

标签: cordova sencha-touch-2 monkeytalk hybrid-mobile-app


【解决方案1】:

我使用 MonkeyTalk 和 Sencha 已经有一段时间了。据我了解,MonkeyTalk 为当前视图上的每个(Web-)元素创建了自己的 ID(MonkeyID)。一旦一个元素获得了它的 MonkeyID,它将在接下来的测试中保留它。 问题是,Sencha 并没有为它的 WebElements 创建唯一的 ID。这有点令人困惑,因为它根本不合逻辑。

无论如何,Sencha 所做的是生成通用 ID,因此它们仅在当前视图中是唯一的。当您切换到另一个视图并稍后返回时,所有元素可能具有不同的 ID。也许您可以在 Sencha 设置中更改此设置...

这就是为什么 MonkeyTalk 无法为这些元素创建 MonkeyID,而 MonkeyID 是 Monkeytalks 与元素交互的唯一方式,您根本无法单击它们、向它们发送文本或以任何其他方式与它们交互。 到目前为止,我发现的使 Sencha 应用程序自动化的唯一解决方案是使用 XPath 并引用元素的标签。但不幸的是 MonkeyTalk 不支持...

【讨论】:

    【解决方案2】:

    由于 Steve McGarret 所说,使用 Sencha 构建的应用程序并不是最容易测试的,但 MonkeyTalk 使用 documention web page: 中解释的另一种方法完成了这项工作

    MonkeyId 也可以指定为从 1 开始(不是从零开始)的索引 #N 的形式。在这种情况下,MonkeyId 标识第 N 个 当前显示的指定类型的组件。组件 根据最左上角的位置进行索引,即通过排序 (x,y) 坐标的分量。

    假设您希望自动注册用户。该页面很可能包含多个输入字段,但您不能使用它们的 ID,因为如果您导航到另一个视图,它们会发生变化。您可以执行以下操作:

    • 打开 chrome 并使用其网络检查器 (chrome://inspect/#devices) 查找您想要的元素。假设有一个输入框,其属性为“name”,值为“firstName”。
    • 转到 MonkeyTalk 并打开组件树。按“输入”一词过滤。
    • 记下它在树中的位置(例如 3)并开始编写脚本:
      • 输入 #3 EnterText 约翰
      • 输入 #4 EnterText Doe
      • (...)

    就是这样。 MonkeyTalk 将完美地播放您的脚本。 如果其他人有更好的解决方案来获取组件树中元素的位置,请告诉我 - 否则如果您的页面有很多 div/元素并且不值得麻烦,这是一个非常痛苦的过程。不妨使用另一个测试框架。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-05
      • 1970-01-01
      • 2014-09-09
      • 1970-01-01
      相关资源
      最近更新 更多