zoukankan      html  css  js  c++  java
  • Selenium应用代码(读取mysql表数据登录)

    1. 封装链接数据库的类:

    import java.sql.ResultSet;

    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.PreparedStatement;
    import java.sql.SQLException;

    public class DBhelp {
    public static final String url = "jdbc:mysql://***:3306/databasename";
    public static final String user = "user";
    public static final String password = "password";
    public java.sql.Connection con = null;
    public java.sql.PreparedStatement ps = null;

    ResultSet rs = null;
    userdata userdata= new userdata();

    public DBhelp(String sql) {
    try {
    con = DriverManager.getConnection(url, user, password);//获取连接
    ps = con.prepareStatement(sql);//准备执行语句
    rs = ps.executeQuery();
    } catch (Exception e) {
    e.printStackTrace();
    }
    }

    public void close() {
    try {
    this.con.close();
    this.ps.close();
    } catch (SQLException e) {
    e.printStackTrace();
    }
    }

    }

    2. 封装登录的用户类:

    public class userdata {

    public String username;
    public String password;
    public String errNote;
    public void setusername(String username){
    this.username=username;
    }
    public String getusername(){
    return username;
    }
    public void setpassword(String password){
    this.password=password;
    }
    public String getpassword(){
    return password;
    }
    public void seterrNote(String errNote){
    this.errNote=errNote;
    }
    public String geterrNote(){
    return errNote;}

    }

    3. testng读取表数据测试登录:

    import org.testng.annotations.Test;

    import com.mysql.jdbc.Connection;
    import com.mysql.jdbc.PreparedStatement;

    import org.openqa.selenium.By;
    import org.openqa.selenium.WebElement;

    import java.sql.DriverManager;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.util.ArrayList;
    import java.util.Collection;
    import java.util.Iterator;
    import java.util.List;

    import org.testng.annotations.BeforeSuite;
    import org.testng.annotations.BeforeTest;
    import org.testng.annotations.DataProvider;

    public class LoginJDBC {
    public String sql = "select USER_NM,PASSWORD,NOTE from data_user";
    static ResultSet ret = null;
    userdata user=new userdata();
    Login wm=new Login();
    public String baseUrl = "url";
    public String LinkTest;
    public String LinkTestPassWord;

    @Test(dataProvider = "jdbc_data")
    public void DBlogin(userdata user) throws Exception {
    wm.Loginindex(baseUrl, user.username,user.password);
    WebElement tips=wm.driver.findElement(By.xpath("//*[@id='J_Mod_Login']/div[2]/div[1]/form/div[1]/div"));
    if(tips.getText().matches(user.errNote)){

    System.out.println(user.errNote+":pass");
    Thread.sleep(3000);
    }
    else{
    System.out.println(user.errNote+":error");

    Thread.sleep(2000);
    }

    }

    @DataProvider

    public Iterator<Object[]> jdbc_data() {
    List<userdata> userlist = new ArrayList<userdata>();
    List<Object[]> userToBe = new ArrayList<Object[]>();
    DBhelp db1 = new DBhelp(sql);//创建DBHelpe对象
    //读取表数据,封装为步骤2定义的user对象数组
    try {
    ret = db1.ps.executeQuery();//执行语句,得到结果集
    while (ret.next()) {
    user.setusername(ret.getString("USER_NM"));
    user.setpassword(ret.getString("PASSWORD"));
    user.seterrNote(ret.getString("NOTE"));
    userlist.add(user);
    }//显示数据
    ret.close();
    db1.close();//关闭连接

    //转为Object元素
    for (userdata userData:userlist)
    {
    userToBe.add(new Object[] { userData } );

    }
    } catch (SQLException e) {
    e.printStackTrace();

    }
    return userToBe.iterator();

    }




    }

  • 相关阅读:
    .NET中26个优化性能方法
    通过纯真IP地址实现根据用户地址显示信息
    jQuery中json中关于带有html代码网页的处理
    gb2312提交的url编码转换成utf8的查询
    c# Bitmap byte[] Stream 文件相互转换
    WebClient 上传文件
    进程监控模块配置与使用 ------ACE(开源项目)
    boost配置
    C++学习总结3
    SAE云平台的使用
  • 原文地址:https://www.cnblogs.com/testwang/p/5287869.html
Copyright © 2011-2022 走看看