【问题标题】:how to impersonate a windows domain user for automated web testing?如何模拟 Windows 域用户进行自动化 Web 测试?
【发布时间】:2010-11-01 20:03:14
【问题描述】:

我们即将使用 selenium-rc 和 java 客户端构建几个 UI 测试

应用程序本身是一个经典的ASP Web应用程序,它使用集成安全性来检索来自数据库的用户权限,然后,根据这些权限,将显示一个具有拟合选项的菜单。

我们想自动化那个测试,比如

如果登录的用户是 domain/user_test 则应该启用 optionx ...

有没有办法以编程方式模拟域帐户,以便服务器上的 selenimum-rc 可以使用指定用户“运行”浏览器?

或者我应该破解一个方法以便通过(例如)查询字符串将用户传递给应用程序?

你如何处理这些测试?

非常感谢...

【问题讨论】:

    标签: java selenium automated-tests impersonation webtest


    【解决方案1】:

    您正在根据一些查找的记录验证用户的权限并为该用户生成菜单。

    以下似乎适合....

    1. IIS 的作用是根据身份验证向应用程序识别用户。
    2. IIS 会将用户识别为已知用户或未知用户。
    3. 如果 IIS 计算机位于域中,则 KNOWN 用户将包括 DOMAIN 和 LOCAL 用户帐户。

    从技术上讲,对于您的网络应用来说,LOCAL 用户和 DOMAIN 用户之间没有区别。 (除非有其他未提及的细节)。您可以通过为每个测试用例定义一个本地用户(或域用户)并测试每个用户来验证操作是否正确。针对本地用户进行测试可能更容易。

    要识别用户,请在 url 中转发您的凭据:

    http://username:password@hostname/website

    请注意,自 832894 起,安全更新已终止 IE 中的此功能。 根据 MS: 默认情况下,从安全更新 832894 开始发布的 Windows Internet Explorer 版本不支持在 HTTP 和使用安全套接字层 (SSL) 或 HTTPS URL 的 HTTP 中处理用户名和密码。 Internet Explorer 或 Windows Explorer 不支持以下 URL 语法: http(s)://username:password@server/resource.ext

    如果您与 IE 结婚,您可能必须使用 RUNAS(如上所述)启动并设置自动身份验证。

    如果您使用的是 FF 或 OPERA,只要您将 IIS 网站目录安全配置为允许“基本身份验证”,就可以了。

    【讨论】:

    【解决方案2】:

    您始终可以使用“RunAs”选项在不同的用户帐户下运行浏览器。如果在 ASP 上启用了模拟,那么这是 ASP 进程将在其下运行的帐户。由于您已启用集成安全性,因此该模拟帐户也应与您的数据库一起使用。但是,请注意 Windows 上的经典双跃点问题。

    【讨论】:

    • 有没有办法在 windows 中“以编程方式”从 java 发出 RunAs?除了我必须修改 selenium-rc 源代码之外,我猜......
    • 试试下面的 Win32 API - CreateProcessWithLogonW
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-23
    • 2021-01-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多