如何冒充Windows域用户进行自动化Web测试?

时间:2009-06-10 14:32:46

标签: java selenium automated-tests impersonation webtest

我们将使用selenium-rc和java客户端

构建几个UI测试

应用程序本身是一个经典的asp Web应用程序,它使用集成安全性从数据库中检索用户的权限,然后根据这些权限显示一个带有适当选项的菜单。

我们希望自动执行该测试,例如

如果记录的用户是domain / user_test,那么可以启用optionx ...

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

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

你如何处理这类测试?

非常感谢...

2 个答案:

答案 0 :(得分:1)

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

以下似乎适合......

  1. IIS具有根据身份验证向应用程序标识用户的角色。
  2. IIS会将用户标识为KNOWN用户或UNKNOWN用户。
  3. 如果IIS计算机位于域中,则KNOWN用户将包括DOMAIN和LOCAL用户帐户。
  4. 从技术上讲,对于您的网络应用,LOCAL和DOMAIN用户之间没有区别。 (除非没有提到其他细节)。您可以通过为每个测试用例定义本地用户(或域用户)并测试每个用户来验证正确的操作。对本地用户进行测试可能更容易。

    要识别用户,请在网址中转发凭据:

    http://username:password@hostname/website

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

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

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

答案 1 :(得分:0)

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