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();

}

}

Selenium应用代码(读取mysql表数据登录)的更多相关文章

  1. Junit应用代码(读取mysql表数据)

    1. 封装连接数据库的类: import java.sql.ResultSet; import java.sql.Connection; import java.sql.DriverManager; ...

  2. 如何实现MySQL表数据随机读取?从mysql表中读取随机数据

    文章转自 http://blog.efbase.org/2006/10/16/244/如何实现MySQL表数据随机读取?从mysql表中读取随机数据?以前在群里讨论过这个问题,比较的有意思.mysql ...

  3. 利用Flume将MySQL表数据准实时抽取到HDFS

    转自:http://blog.csdn.net/wzy0623/article/details/73650053 一.为什么要用到Flume 在以前搭建HAWQ数据仓库实验环境时,我使用Sqoop抽取 ...

  4. MySQL 表数据多久刷一次盘?

    前言 事情是这样的,在某乎的邀请回答中看到了这个问题: - 然后当时我没多想就啪一下写下来这样的答案: 这个其实要通过 MySQL 后台线程来刷的,在 Buffer Pool 中被修改的过的 Page ...

  5. pandas读取MySql/SqlServer数据 (转)

    在 Anacondas环境中,conda install pymssql ,一直报包冲突,所以采用先在 https://www.lfd.uci.edu/~gohlke/pythonlibs/#nump ...

  6. Python mysql表数据和json格式的相互转换

    功能: 1.Python 脚本将mysql表数据转换成json格式 2.Python 脚本将json数据转成SQL插入数据库 表数据: SQL查询:SELECT id,NAME,LOCAL,mobil ...

  7. Python将MySQL表数据写入excel

    背景:将mysql表查询结果写入excel. 1.使用sqlyog工具将查询结果导出到Excel.xml中,用excel打开发现:因为text字段中有回车换行操作,显示结果行是乱的. 2.用mysql ...

  8. linux下用命令导出mysql表数据

    由于数据库服务器是内网环境,只能通过linux跳板机连接,所以navicat工具暂时用不上. 1.用Xshell工具连接跳板机 2.再通过跳板机连接数据库服务器 >ssh -p port ip ...

  9. java读取mysql表的注释及字段注释

    /** * 读取mysql某数据库下表的注释信息 * * @author xxx */ public class MySQLTableComment { public static Connectio ...

随机推荐

  1. C# 委托,事件, 异步

    委托 ​ 委托可以说是方法的集合,里面放着方法列表,当调用的时候就会调用全部的方法列表 ​ 个人理解 : 当声明和创建时委托时, 它是个 对象 当使用委托,调用方法时,它是个 方法 声明委托类型 de ...

  2. ReentrantReadWriteLock简介

    对象的方法中一旦加入synchronized修饰,则任何时刻只能有一个线程访问synchronized修饰的方法.假设有个数据对象拥有写方法与读方法,多线程环境中要想保证数据的安全,需对该对象的读写方 ...

  3. python7

    字典-dict     字典也是一种组合数据,没有顺序的组合数据,数据以键值对的方式存在 字典的定义     1.创建空字符串         变量 = {} 或者 变量 = dict()     2 ...

  4. ugui之圆角矩形头像实现

    这个是参考大神的修改了一下渲染方式实现的,可以去查看原帖的,原贴是圆形头像,原理讲的非常详细 点击这里 我写的这个只支持正方形图片,效果是酱紫的~ 一共三个代码,还需要两个代码,原帖里都有的,我只是修 ...

  5. CAP理论-解析

          分布式系统的CAP理论:理论首先把分布式系统中的三个特性进行了如下归纳:● 一致性(C):在分布式系统中的所有数据备份,在同一时刻是否同样的值.(等同于所有节点访问同一份最新的数据副本) ...

  6. lintcode 题目记录2

    判断字符串是否是互为置换,类似 替换字符串之类的遍历就行了.. class Solution: # @param {string} A a string # @param {string} B a s ...

  7. log在无法调试代码时的妙用

    1. 如果修改源代码 通过加入log打印日志 可以判断程序走的流程 找到需要自定义修改的位置(如修改java编写的项目 ApacheDS ) 2. 如果java调用dll文件 出错了 排错的方式也可以 ...

  8. 初识shell expect

    场景:工作中经常会遇到shell脚本写的连接脚本,所以稍微了解下. 一.shell Shell 是一个用C语言编写的程序,它是用户使用Linux的桥梁.Shell既是一种命令语言,又是一种程序设计语言 ...

  9. base64编码 的 图片 另存为下载

    功能描述: 有一段base64字符串的图片,将其保存下载为png图片! 可以:  直接 a 链接下载:  <a id="tttt" download="1.jpg& ...

  10. 快速数组对象取值与数组映射新数组--array.map

    array.map(callback,[ thisObject]); 1.map方法的作用不难理解,“映射”嘛,也就是原数组被“映射”成对应新数组 a)array.map(()=>值); [1, ...