我需要单独运行 Selenium Webdriver JUnit 测试,但也需要同时运行。我一直在寻找一种解决方案,基本上可以减少一个问题:我正在测试一个使用 SSO 的应用程序。
这意味着,我在运行测试时必须手动登录。另一方面,这甚至是所希望的,因为您不想在任何文件中存储关键密码。当您运行单个测试时,这甚至没有害处。但是,当您需要运行所有这些测试并且您有大约 100 个测试时,您将必须登录 100 次。不可能,何塞!
我发现一种可能的解决方案是 Java 代理服务器。我找到了显示如何创建和处理一个代码,但没有显示其中的 SSO 部分。谁能帮我?或者密码会以某种方式存储在某个地方吗?
最佳答案
您需要了解有关 SSO 实现的更多信息。我建议使用浏览器的开发工具和调试代理(例如 Fiddler 或 Charles)来捕获 SSO 身份验证期间浏览器和服务器之间的 HTTP 流量,然后在 Java Web 客户端中实现这些请求。 SSO 身份验证通常会导致设置 cookie。如果您在身份验证阶段后捕获此 cookie,那么您可以在每个 Selenium 测试中重用此 cookie。
身份验证需要凭据,您可以将其放入属性文件中。您可以从源代码管理中排除此属性文件,并要求所有开发人员在运行测试时使用自己的凭据。
关于 Selenium 和单点登录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13084845/