【发布时间】:2017-06-15 08:39:26
【问题描述】:
我刚刚使用 selenium 完成了测试自动化。我想知道如何将测试数据单独保存为json格式。
你能告诉我如何在page object pattern中写测试数据。
这里我使用了多个包。一个用于定位器识别,另一个用于初始化元素的页面工厂,另一个是用于获取 URL 等常见值的包实用程序。我还有一个用于测试登录模块的测试包。
我不知道我应该把测试数据类放在哪里?
我想单独保留测试数据。不会散布在整个脚本中。将测试数据保存在 Json 中。并在必要时从那里阅读。
我仍然对我应该把json format放在哪里感到困惑
我也是selenium 代码不遵循框架。我没有遵循任何框架。有人请告诉我有关框架的信息吗?
框架是:Data driven、keyword driven、hybrid 和 modular。大多数人使用哪个框架,因为和为什么?
作为测试人员应该了解所有框架吗?
我正在关注页面object design pattern:
页面对象:
package pageobjects;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.support.FindBy;
import org.openqa.selenium.support.How;
public class HomePage
{
@FindBy(how= How.NAME, using = "username")
WebElement username;
@FindBy(how=How.NAME, using = "password")
WebElement password;
@FindBy(how=How.XPATH, using="//*[@id=\'login-container\']/form/div[3]/div/p/input[1]" )
WebElement button;
//enter username
public void userLogin(String user, String pass)
{
username.sendKeys(user);
password.sendKeys(pass);
button.click();
}
}
步骤:
package steps;
import org.openqa.selenium.support.PageFactory;
import pageobjects.ClientPage;
import pageobjects.HomePage;
import util.DriverManager;
public class LoginSteps
{
public HomePage Login(String nam, String pas) {
HomePage homePageObj = PageFactory.initElements(DriverManager.driver, HomePage.class);
homePageObj.userLogin(nam,pas);
return homePageObj;
}
}
实用程序:
package util;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
public class DriverManager
{
public static WebDriver driver;
String baseUrl="//http:qms";
public DriverManager()
{
System.setProperty("webdriver.chrome.driver","/home/naveen/chromedriver");
driver=new ChromeDriver();
driver.get(baseUrl);
driver.manage().window().maximize();
}
}
登录测试:
package login;
import org.testng.Assert;
import org.testng.annotations.*;
import pageobjects.HomePage;
import steps.LoginSteps;
import util.DriverManager;
import static util.DriverManager.driver;
public class loginTest
{
@BeforeSuite(groups = {"regression"})
public void initDriver(){
DriverManager manager = new DriverManager();
}
@DataProvider(name= "login")
public static java.lang.Object[][] loginData(){
return new Object[][]{{"geoso","1"},{"ges","2"},{"geo","1"}};
}
@Test(dataProvider = "login")
public void verifyValidLoginWithDataProvider(String userName,String password)
{
LoginSteps loginSteps= new LoginSteps();
HomePage ex=loginSteps.Login(userName,password);
Assert.assertTrue(driver.getPageSource().contains("Hello Naveen"));
}
}
这里是json format的场景请告诉我怎么写代码?
首先打开网址,然后进入登录页面。
login
{
"username" :"ertte"
password: "34"
}
"Admin"
"users"
"add users"
"username" :"tsrt"
"password":"sdfgsdrfg"
name:"gfgf"
nickname:"fgsdgf"
role:"client"
email:"sdfsd@gmail.com"
submit
}}
【问题讨论】:
标签: selenium frameworks