selenium+junit4实现参数化自动化测试

业务场景:在www.1905.com电影网中实现两个用户的登陆操作。

代码如下:

package com.m1905.junit;

import java.util.Arrays;
import java.util.Collection;

import org.junit.AfterClass;
import org.junit.BeforeClass;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
import org.junit.runners.Parameterized.Parameters;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebDriver.Navigation;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.support.ui.ExpectedConditions;
import org.openqa.selenium.support.ui.WebDriverWait;

@RunWith(Parameterized.class)
public class LoginParameterTest {
    private static WebDriver driver;
    private static Navigation navigate;
    private static String url="http://www.1905.com";

    @BeforeClass
    public static void setUpBeforeClass() throws Exception {
        driver = new FirefoxDriver();
        navigate = driver.navigate();
        navigate.to(url);
        driver.manage().window().maximize();
    }
    private String username;
    private String password;
    public LoginParameterTest(String username,String password){
        this.username = username;
        this.password = password;
    }
    @Parameters
    public static Collection<Object[]> prepareData(){
        Object[][] object = {{"user1","pwd1"},{"user2","pwd2"}};
        return Arrays.asList(object);
    }
    @Test
    public void testLogin() {
        try {
            Thread.sleep(8000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        WebElement LogAndReg = driver.findElement(By.xpath(".//*[@id=‘site_nav_md‘]/ul/li[2]/a"));
        LogAndReg.click();
        WebElement usernameBox = driver.findElement(By.xpath(".//*[@id=‘inputUsername‘]"));
        WebElement passwordBox = driver.findElement(By.xpath(".//*[@id=‘inputPassword‘]"));
        WebElement loginButton = driver.findElement(By.xpath(".//*[@id=‘loginreg‘]/div/div[1]/form/p/button"));
        usernameBox.clear();
        usernameBox.sendKeys(username);
        passwordBox.sendKeys(password);
        loginButton.click();
        WebDriverWait wait = new WebDriverWait(driver,10);
        WebElement logoutButton = wait.until(ExpectedConditions.elementToBeClickable(By.xpath(".//*[@id=‘site_nav_md‘]/ul/li[3]/a[2]")));
        logoutButton.click();
    }
    @AfterClass
    public static void tearDownAfterClass() throws Exception {
        driver.close();
    }
}
时间: 2024-10-12 16:53:27

selenium+junit4实现参数化自动化测试的相关文章

Selenium+excel实现参数化自动化测试

使用到的技术:POI对excel的解析.selenium自动化测试.junit 测试用例:登陆www.1905.com执行登陆-退出的操作 执行步骤: 1.首先创建一个excel,里面有用户名和密码列 2.新建 一个解析excel的java类 package com.m1905.java; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import

Robot Framework + Selenium2Library环境下,结合Selenium Grid实施分布式自动化测试

最近一段时间,公司在推行自动化测试流程,本人有幸参与了自定义通用控件的关键字封装和脚本辅助编写.数据驱动管理.测试用例执行管理等一系列工具软件的研发工作,积累了一些经验,在此与大家做一下分享,也算是做一个总结吧,希望能给大家带来启发和帮助.由于业界没有成熟的解决方案可供参考,本人在研究过程中也是摸着石头过河,纰漏之处在所难免,如果大家有更好的方案,敬请不吝赐教. 分布式并行执行用例需求背景 公司的产品属于web app,采用的是Robot Framework + Selenium2Library

Selenium(Webdriver)自动化测试常问到的问题解答(转自:潜龙0318)

今天朋友问我了几个关于Selenium自动化测试的问题,我看了一下感觉还比较典型.结合我以往自动化测试的经验,给出了一些儿粗浅的答案,希望能帮大家,如果大家有什么好的看法,希望相互交流,相互学习! (1)selenium中如何保证操作元素的成功率?也就是说如何保证我点击的元素一定是可以点击的?答:Selenium保证元素成功率是通过元素的定位,当然它的定位方法很多,一定能有合适的.但是在自动化工程的实施过程中,高质量的自动化测试不是只有测试人员保证的.需要开发人员规范开发习惯,如给页面元素加上唯

Selenium原理初步--Android自动化测试学习历程

章节:自动化基础篇——Selenium原理初步(第五讲) 注:其实所有的东西都是应该先去用,但是工具基本都一样,底层都是用的最基础的内容实现的,测试应该做的是: (1)熟练使用工具,了解各个工具的利弊,达到工具优选.因时因地制宜的目的 (2)读源码,理解原理,能够对开源的源码进行二次再创造,改编成适合自身产品的工具:或者自己直接编写适合测试的工具 (3)能够对测试过程中发生的异常进行分析和定位,对测试结果进行详细和系统的综合评定(需要能够分析定位问题,必须对自身产品了解,但更需要的是对底层代码和

Selenium学习笔记(1) - 自动化测试体系与原理

技术体系 基于代码的测试(Code-Based Testing) 基于协议的测试(Protocol-Based Testing) 基于界面的测试(GUI-Based Testing) 工作原理 基于代码 定义期望结果 调用被测对象 对比实际结果 难点:1.前置条件或环境的准备:2.被测代码又大量的异常 优点:1.容易实施:2.原理简单:3.不需要太复杂的编程能力 基于协议 并非直接调用代码,而是模拟用户发送数据包 典型的接口测试,偏黑盒 非常清楚协议的工作过程 能够利用编程语言来操作协议 经常用

Selenium(Webdriver)自动化测试常问问题

http://blog.sina.com.cn/s/blog_c189e2590102w3bv.html (1)selenium中如何保证操作元素的成功率?也就是说如何保证我点击的元素一定是可以点击的?答:Selenium保证元素成功率是通过元素的定位,当然它的定位方法很多,一定能有合适的.但是在自动化工程的实施过程中,高质量的自动化测试不是只有测试人员保证的.需要开发人员规范开发习惯,如给页面元素加上唯一的name,id等,这样就能大大地提高元素定位的准确性.当然如果开发人员开发不规范,我们在

selenium Gird2——浏览器参数化和与分布式测试

selenium server环境配置 下载Java JDK:https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.htm 下载Selenium Standalone Server:https://www.seleniumhq.org/download/ 配置环境变量 新增系统变量JAVA_HOME:C:\Program Files\Java\jdk1.8.0_191 新增系统变量CLASS

jenkins+selenium+python实现web自动化测试

jenkins+selenium可以做到对web自动化的持续集成. Jenkins的基本操作: 一.新建视图及job 新建视图: 新建job: 可以选择构建一个自由风格的软件项目或者复制已有的item 二.准备工作:   安装Jenkins插件,SSH plugin ,Email Extension Plugin ,Hudson Seleniumhq plugin 点击系统管理->管理插件 在可选插件面板Filter中输入插件名,勾选复选框,点击直接安装,安装完成后重启Jenkins 三.重启后

Python Selenium unittest+HTMLTestRunner实现 自动化测试及发送测试报告邮件

1.UI测试框架搭建-目录结构 2. 文件介绍 2.1.baseinfo->__init__.py 配置文件定义基础参数 #-*-coding:utf-8-*- #测试用例配置参数 base_url = "http://xxxxx.com" undirect_username = "username" undirect_password = "password" direct_username = "username"