【问题标题】:Selenium framework and test data in jsonSelenium 框架和 json 中的测试数据
【发布时间】:2017-06-15 08:39:26
【问题描述】:

我刚刚使用 selenium 完成了测试自动化。我想知道如何将测试数据单独保存为json格式。

你能告诉我如何在page object pattern中写测试数据。

这里我使用了多个包。一个用于定位器识别,另一个用于初始化元素的页面工厂,另一个是用于获取 URL 等常见值的包实用程序。我还有一个用于测试登录模块的测试包。

我不知道我应该把测试数据类放在哪里?

我想单独保留测试数据。不会散布在整个脚本中。将测试数据保存在 Json 中。并在必要时从那里阅读。

我仍然对我应该把json format放在哪里感到困惑

我也是selenium 代码不遵循框架。我没有遵循任何框架。有人请告诉我有关框架的信息吗?

框架是:Data drivenkeyword drivenhybridmodular。大多数人使用哪个框架,因为和为什么?

作为测试人员应该了解所有框架吗?

我正在关注页面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


    【解决方案1】:

    现在有很多不同的框架可以与 selenium 结合使用。

    我使用 Cucumber [BDD]。 你可以把你的场景写成普通的句子,Gherkin 会把它们转移到一个方法中。句子可以有参数或参数列表。

    您对测试的执行控制权在两个,我们称之为顶级。您可以选择要运行的功能文件。 可以使用标签构建第二个执行过滤器。例如@smoketest @regression 等等。

    您也可以使用 TestNG。您有 .xml 文件,您可以在其中进行设置。执行特定的类、方法、优先测试、建立测试依赖关系、跳过测试并完全控制执行。

    我认为还有很多,但这两个是最受欢迎的。

    【讨论】:

      猜你喜欢
      • 2011-02-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-10-15
      • 2017-05-01
      • 2010-12-21
      相关资源
      最近更新 更多