其他分享
首页 > 其他分享> > 编码的UI WebTest,有时在编辑字段中会省略键入的字符

编码的UI WebTest,有时在编辑字段中会省略键入的字符

作者:互联网

**更新后**

对于我们在Microsoft Dynamics环境中的系统和集成测试,我们使用Visual Studio 2010编码的UI.我不是Visual Studio的经验丰富的用户,但是具有测试自动化的经验.

每当VS-Code-UI测试在编辑框中键入文本时,都会发生变化,即忽略了必须键入的字符之一.比佛利山庄90210之类的地址栏很容易成为贝弗利病90210,这打破了我的考验.它发生在200个字符中的1个左右(有根据的猜测).

有人经历过吗?问题可能在何处:VS的输入速率,键盘驱动程序损坏,浏览器打ic,因此无法正确接收文本输入,还有其他问题吗?

是否有可能降低VS编码的ui中测试驱动程序的键入率?

更新,2012-05-24:
仍未找到解决方案.我现在使用一种变通的方法来减少失败的改变,但这仍然不是理想的.

解决代码(是的,它很脏):

// put this method in a base class or easy accessable component
protected void ExecuteWithRetry(Action method, int maxRetryCount = 2)
{
    try
    {
        method();
    }
    catch (Exception)
    {
        if (maxRetryCount > 0)
        {
            ExecuteWithRetry(method, maxRetryCount - 1);
        }
        else
        {
            throw;
        }
    }
}

每当我使用设置了文本字段的一段代码时,都会通过以下方法调用此代码:

UIMap.SetUserfieldsParams.EnterAddress = @"555 Sunset Boulevard";
UIMap.SetUserfieldsParams.EnterZIP = @"90210";
ExecuteWithRetry(UIMap.SetUserfields);

UPDATE,2012-06-18:似乎是由于我们使用的假冒行为引起的.通过启动IE的用户名直接从AD服务器中提取了我们Web应用程序的登录用户.通过模拟启动IE,我们可以与其他用户进行测试,而无需(手动)注销并登录Windows.我们通过在命名空间System.Diagnostics.Process中使用Process.Start(ProcessStartInfo startInfo)使用模拟

解决方法:

我的第一个猜测是它正在发生,因为它正在快速键入并且您的应用程序尚未准备好接收下一个密钥.您可以使用KeyBoard.SendKeysDelay更改两次输入键之间的时间,我的机器上的默认时间至少为10毫秒.

您是否碰巧关闭了继续出错的功能?令您感到惊讶的是,您没有遇到在输入值时停止测试的异常.

标签:coded-ui-tests,automated-tests,visual-studio-2010,c
来源: https://codeday.me/bug/20191201/2082070.html