【问题标题】:coded ui params method doesn't work编码的 ui 参数方法不起作用
【发布时间】:2013-07-26 00:09:47
【问题描述】:

我正在尝试使用 Microsoft 的编码 UI 在 html 页面上自动输入值。当我使用普通方法(即通过动作记录获得的硬编码值)时,一切正常,但如果我使用 params 方法并将其传递给显式值,它根本不起作用;更糟糕的是,此时测试并没有失败,它似乎只是跳过了那一步。 我希望有人可以在我设置测试的数据驱动方面或者是否有其他我可以尝试的东西时让我知道我缺少什么(如果有的话)。谢谢 埃里克

这是来自测试本身的数据连接字符串 [DeploymentItem("PFChecks\Data\Company.xml"), DataSource("Microsoft.VisualStudio.TestTools.DataSource.XML", "|DataDirectory|\Company.xml", "Iteration", DataAccessMethod.Sequential), TestMethod]

以及尝试使用 params 方法设置字段值的代码行。 usEnterSSN.methodUserSyncEnterSNSParams.UISsnoEditText = "012831444";

此方法中只有一个对象可以使用,即 UISsnoEditText 对象。 UI Map 中的对象名称是正确的,并且与网页本身上的名称相匹配。如果我明确设置值(如上)或使用 TestContext.DataRow 方法,则 params 方法将无法工作。 欢迎任何想法,如果我可以提供任何进一步的信息来帮助回答这个问题,请告诉我。 谢谢 埃里克

【问题讨论】:

  • 你能澄清一下“它根本不起作用”吗?它做什么和不做什么?例如,是否输入记录测试时输入的值?
  • 如果我使用... usEnterSSN.methodUserSyncEnterSSN();然后它输入正确的信息,测试正常进行。如果我使用... usEnterSSN.methodUserSyncEnterSSNParams.UISsnoEditText = "012831444";然后没有任何东西进入该领域,但测试仍然通过。顺便提一下,此处指定的值(012831444)与使用 usEnterSSN.methodUserSyncEnterSSN(); 时输入的值相同;

标签: coded-ui-tests


【解决方案1】:

发生了三件事。

(1) 上面的作业在正确的地方吗? uimap...xxxParams.yyyEdit = ...; 应该在调用使用它的方法之前。

(2) 您可以使用 Visual Studio 调试器设置断点并逐步完成编码的 UI 测试。 (您需要右键单击codeduitest.cs 文件并选择Debug tests

(3) 来自澄清问题的评论。您需要同时进行分配和通话。所以一般形式是uimap...xxxParams.yyyEdit = ...; uimap...xxx();。方法调用从...Params读取值,默认值是记录测试时输入的值。赋值会覆盖...Params 项的默认值。

http://blogs.msdn.com/b/mathew_aniyan/archive/2010/02/11/content-index-for-coded-ui-test.aspx 链接的数据驱动测试以及许多其他关于编码 UI 测试的项目都有很好的讨论。

【讨论】:

  • 成功了,谢谢!我仍然有点困惑,过去我已经能够使用 usEnterCompanyNum.methodUserSyncEnterCompanyNumberParams.UICpny_idEditText = TestContext.DataRow["comp_id"].ToString();本身无需添加,usEnterCompanyNum.methodUserSyncEnterCompanyNumber();直接在它之后。这是最近发生了变化,还是我是个术士,让它以前以另一种方式工作?谢谢埃里克
【解决方案2】:

我能想到两件事。

  1. 您是否在编辑之前将代码移动到 UIMap.cs 文件,然后从那里开始工作? 如果不是,你应该这样做。

  2. 尝试从 UIMap.uitest 文件中删除某些搜索属性和过滤器属性。

如果这没有帮助,我需要更多信息,甚至可能是屏幕截图。

【讨论】:

  • 1.我不需要修改 UIMap 文件,所以我只是将它留在设计器文件中。 2. 我尝试删除所有可能导致混淆的搜索和过滤属性;但是页面上没有太多对象可以让它混淆。我很乐意插入屏幕帽;请问您想看到什么?谢谢,埃里克
  • 我认为您尝试做的是更改测试中使用的值。在这种情况下,您应该将其移动到 UIMap.cs 并在那里进行编辑。
猜你喜欢
  • 2013-02-24
  • 2011-11-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-02-05
  • 1970-01-01
  • 1970-01-01
  • 2016-03-30
相关资源
最近更新 更多