使用哪种测试设计模式来自动化多用户登录网页?

时间:2018-12-13 14:46:16

标签: selenium selenium-webdriver

我一直在使用Ruby使用Selenium Webdriver来自动化Web应用程序。我遇到的情况是,登录页面对于不同的用户可能看起来有所不同。我如何开始自动化这样的页面?页面对象模型是否适用于这种情况?

感谢您的帮助。

谢谢

1 个答案:

答案 0 :(得分:0)

所以,这就是我认为我将如何处理这种情况的方法,为了做出解释,我将做出一些假设来说明我的想法:

假设1:我有一个YAML,可以为所有用户存储凭据。

假设2:就本例而言,假设我正在使用黄瓜框架 Selenium / Ruby测试登录页面:https://github.com/cucumber/cucumber-ruby

因此,我有一个Ruby类,它将包含pageObject gem,并且将具有所有不同的Login页面的URL和页面对象,例如:     class LoginPage include PageObject page_url_user_1 = someUrl for user1's login page page_url_user_2 = someUrl for user2's login page text_field(:user_1, name: 'username') text_field(:pass_1, name: 'password') button(:submit, css: '.submit-btn') text_field(:user_2, name: 'username') text_field(:pass_2, name: 'password') button(:submit, css: '.submit-btn') def submit_creds(user_1) self.user_1 = GetCreds fro YAML self.pass_1 = GetCreds fro YAML self.submit end def navigate_to_Login_page(page_url_user_1) @browser.navigate.to page_url_user_1 end end

现在在“黄瓜”级别上,您具有以下功能步骤:

When I navigate to "page_url_user_1" login page And I login as "User_1"

在“定义”步骤上,您可能只需要输入类似内容:

when(/^I navigate to "([^"]*)" login page do |user_login_url| on(LoginPage).navigate_to_Login(user_login_url) end when(/^I login as a "([^"]*)" do |user_name| on(LoginPage).submit_creds(user_name) end 希望这可以帮助您入门。