自动化测试中用到的一些功能类(纯手工整理)

来源:互联网 发布:js 定义json对象集合 编辑:程序博客网 时间:2024/05/12 06:00

1、WebDriver处理一些弹窗

import java.util.Set;import org.openqa.selenium.Alert;import org.openqa.selenium.By;import org.openqa.selenium.NoAlertPresentException;import org.openqa.selenium.WebDriver;import org.openqa.selenium.WebDriverException;import org.openqa.selenium.ie.InternetExplorerDriver;public class AlertOperate {static WebDriver dr = new InternetExplorerDriver();public static void main(String args[]) throws InterruptedException{dr.get("www.baidu.com");dr.findElement(By.id("lb")).click();try {Thread.sleep(2000);} catch (InterruptedException e) {// TODO Auto-generated catch blocke.printStackTrace();}tanchukuang();}//处理潜在的1个alert(javascript弹出框)public boolean dealPotentialAlert(WebDriver driver,boolean option) {boolean flag = false;try {Alert alert = driver.switchTo().alert();if (null == alert)throw new NoAlertPresentException();try {if (option) {alert.accept();System.out.println("Accept the alert: " + alert.getText());} else {alert.dismiss();System.out.println("Dismiss the alert: " + alert.getText());}flag = true;} catch (WebDriverException ex) {if (ex.getMessage().startsWith("Could not find"))System.out.println("There is no alert appear!");elsethrow ex;}} catch (NoAlertPresentException e) {System.out.println("There is no alert appear!");}return flag;}//处理非JS弹窗public static boolean testNewWindow(){//当前窗口句柄 String currentHandle = dr.getWindowHandle();//得到所有窗口的句柄 Set<String> handles = dr.getWindowHandles(); handles.remove(currentHandle); if (handles.size() > 0) { try{ dr.switchTo().window(handles.iterator().next()); //dr.switchTo().window(dr.getWindowHandles().iterator().next()); return true; }catch(Exception e){ System.out.println(e.getMessage()); return false; } } System.out.println("Did not find window"); return false;}//一般弹出窗口public static void tanchukuang() throws InterruptedException{//得到所有窗口Set<String> allWindowsId = dr.getWindowHandles();//通过查找页面内容得到新的窗口for(String windowId : allWindowsId){dr.switchTo().window(windowId);Thread.sleep(1000);dr.findElement(By.id("TANGRAM__PSP_10__userName")).sendKeys("test");//第一个按钮是确定按钮//dr.findElement(By.xpath("//button[@type='button']")).click();//System.out.println(dr.switchTo().window(windowId).getTitle());break;}}}

2、一些数据类型转换

public class Chanage {//int to Stringpublic static String IntToString(int i){String s = Integer.toString(i);return s;}//String to intpublic static int StringToInt(String s){int i = Integer.parseInt(s);return i;}}

3、和数据库交互

import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;import com.mysql.jdbc.Connection;class ConnMySQL {Connection conn;Statement stmt;ResultSet rs1;int rs2;public void connection() throws Exception{String db = "meeting";String driver = "com.mysql.jdbc.Driver";String url = "jdbc:mysql://172.16.3.9:3306/"+db;String uname = "admin";String pwd = "itserver";//加载驱动Class.forName(driver);//连接数据库conn = (Connection) DriverManager.getConnection(url, uname, pwd);if(!conn.isClosed()){//System.out.println("连接成功!");}}//执行查询操作返回ResultSet类型public void  executeSql0(String sql) throws SQLException{//创建语句对象,用来执行sql语句stmt = conn.createStatement();//执行sqlrs1 = stmt.executeQuery(sql);while(rs1.next()){String name = rs1.getString("meetingId");String subject = rs1.getString("e164");String regionName = rs1.getString("state");System.out.println(name+" "+subject+" "+regionName);}rs1.close();}//执行查询操作返回ResultSet类型public void  executeSql1(String sql) throws SQLException{//创建语句对象,用来执行sql语句stmt = conn.createStatement();//执行sqlrs1 = stmt.executeQuery(sql);while(rs1.next()){String id = rs1.getString("id");String subject = rs1.getString("subject");String startTime = rs1.getString("startTime");String endTime = rs1.getString("endTime");String organiger = rs1.getString("organiger");String status = rs1.getString("status");System.out.println(id+" "+subject+" "+startTime+" "+endTime+" "+organiger+" "+status);}rs1.close();conn.close();}//执行增删改操作返回int类型public void executeSql2(String sql) throws SQLException{stmt = conn.createStatement();rs2 = stmt.executeUpdate(sql);stmt.close();conn.close();}}

4、创建EXCEL

// 生成Excel的类 import  java.io.File;import  jxl.Workbook;import  jxl.write.Label;import  jxl.write.WritableSheet;import  jxl.write.WritableWorkbook;public class CreateExcel{    public static void main(String args[]){    //Create_Excel c_e = new Create_Excel();    //c_e.createexcel();    //System.out.printf("success!!");   }}class Create_Excel{public void createexcel(){try{            //  打开文件             WritableWorkbook book = Workbook.createWorkbook(new File("test.xls"));            //  生成名为“第一页”的工作表,参数0表示这是第一页             WritableSheet sheet = book.createSheet("第一页",0);            //  在Label对象的构造子中指名单元格位置是第一列第一行(0,0)            //  以及单元格内容为test             Label label1 = new  Label(0,0,"test");            Label label2 = new  Label(1,1,"test");            //  将定义好的单元格添加到工作表中             sheet.addCell(label1);            sheet.addCell(label2);           /*             * 生成一个保存数字的单元格 必须使用Number的完整包路径,否则有语法歧义 单元格位置是第二列,第一行,值为555            */            jxl.write.Number number = new jxl.write.Number(1,0,555);           sheet.addCell(number);            //  写入数据并关闭文件            book.write();           book.close();       }catch(Exception e){           System.out.println(e);       }}}

5、读取EXCEL

// 读取Excel的类 import  java.io.File;import  jxl.Cell;import  jxl.Sheet;import  jxl.Workbook;/* * 参数1:第几个工作表 * 参数2:第几列 * 参数3:第几行 * 参数都从0开始 * 返回值:当前单元格的数据 */public class ReadExcel{static String result;static Workbook book;static Sheet sheet;    public static void main(String args[]){    //readExcel(0,1,0);    excelNum(0);    }    public static String readExcel(int no,int row,int line){    try{            book = Workbook.getWorkbook(new File("test.xls"));            //  获得第一个工作表对象             sheet = book.getSheet(no);            //  得到第一列第一行的单元格             Cell cell1 = sheet.getCell(row,line);            result = cell1.getContents();            System.out.println(result);            book.close();         }catch(Exception e){            System.out.println(e);         }return result;    }        //返回行数    public static int excelNum(int no){    int col = 0;    int row = 0;    try{    book = Workbook.getWorkbook(new File("test.xls"));    sheet = book.getSheet(no);    //得到行数和列数    col = sheet.getColumns();//列数    row = sheet.getRows();//行数    System.out.println(col+" 列");    System.out.println(row+" 行");    book.close();    }catch(Exception e){    System.out.println(e);    }    return row;    }}

6、更新EXCEL

import  java.io.File;import  jxl.Workbook;import  jxl.write.Label;import  jxl.write.WritableSheet;import  jxl.write.WritableWorkbook;public class UpdateExcel{    public static void main(String args[]){        try{        //  Excel获得文件             Workbook wb = Workbook.getWorkbook(new File("test.xls"));            //  打开一个文件的副本,并且指定数据写回到原文件             WritableWorkbook book = Workbook.createWorkbook(new File("test.xls"),wb);            //  添加一个工作表             WritableSheet sheet = book.createSheet("第二页",1);            sheet.addCell(new Label(0,0,"第二页的测试数据"));            book.write();            book.close();        }catch(Exception e){        System.out.println(e);        }    } }

7、WebDriver判断元素是否存在

import java.util.concurrent.TimeUnit;import org.openqa.selenium.By;import org.openqa.selenium.NoSuchElementException;import org.openqa.selenium.WebDriver;import org.openqa.selenium.WebElement;import org.openqa.selenium.ie.InternetExplorerDriver;/* * 判断一个元素是否存在 */public class ElementIsExsit {//查找一个元素是否存在public boolean isElementExsit(WebDriver driver, By locator) {boolean flag = false;try {WebElement element=driver.findElement(locator);//flag = true;flag=null!=element;System.out.println("元素: " + locator.toString()+ " 存在!");}catch(NoSuchElementException e) {System.out.println("元素: " + locator.toString()+ " 不存在!");flag = false;}return flag;}//如何使用上面的方法public void test(){WebDriver driver = new InternetExplorerDriver();//显性等待driver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);By locator = By.id("id");isElementExsit(driver,locator);}}

8、java下载图片

import java.io.File;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;import java.io.UnsupportedEncodingException;import java.net.URI;import java.net.URISyntaxException;import java.util.ArrayList;import java.util.Date;import java.util.List;import org.apache.http.HttpEntity;import org.apache.http.HttpResponse;import org.apache.http.NameValuePair;import org.apache.http.client.ClientProtocolException;import org.apache.http.client.HttpClient;import org.apache.http.client.entity.UrlEncodedFormEntity;import org.apache.http.client.methods.HttpGet;import org.apache.http.impl.client.DefaultHttpClient;import org.apache.http.message.BasicNameValuePair;import org.apache.http.util.EntityUtils;import com.sun.org.apache.xerces.internal.impl.xpath.regex.ParseException;public class Movision_verifyImage {private static HttpClient hc = new DefaultHttpClient();public static void main(String args[]) throws ClientProtocolException, IOException, ParseException, URISyntaxException{//获取图片验证码页面随机参数(当前时间)long date = new Date().getTime();System.out.println(date);List<NameValuePair> params = new ArrayList<NameValuePair>();params.add(new BasicNameValuePair("random",Long.toString(date)));get("http://172.16.3.6/admin/portalVerifyImage",params);}/* * 带参数的GET请求 *  */public static void get(String url,List<NameValuePair> params) throws ParseException, UnsupportedEncodingException, IOException, URISyntaxException{//get请求HttpGet httpget = new HttpGet(url);//设置参数String str = EntityUtils.toString(new UrlEncodedFormEntity(params));httpget.setURI(new URI(httpget.getURI().toString()+"?"+str));//发送请求HttpResponse re = hc.execute(httpget);//获取相应实体HttpEntity entity = re.getEntity();if (entity != null && entity.isStreaming()) {File storeFile = new File("F:\\test.jpg");            FileOutputStream fos = new FileOutputStream(storeFile);            // 将取得的文件文件流写入目标文件            InputStream is = entity.getContent();            byte[] b = new byte[1024];            int j = 0;            while ((j = is.read(b)) != -1) {               fos.write(b, 0, j);            }            fos.flush();            fos.close();         } else {            System.out.println("[" + url + "] 未找到.");            return;         }         //关闭连接hc.getConnectionManager().shutdown();}}

9、java远程登录linux并执行命令

import java.io.BufferedReader;import java.io.FileWriter;import java.io.InputStream;import java.io.InputStreamReader;import ch.ethz.ssh2.Connection;import ch.ethz.ssh2.Session;import ch.ethz.ssh2.StreamGobbler;/* * 远程调用linux下的vmstat命令,并将结果完整写入文件中 */public class SSHTest {/** * @param args * @throws IOException *//* * 主机地址、端口、用户名、密码 */static String hostName = "172.16.3.9";static int port = 2222;static String userName = "root";static String pwd = "kedats";public static void main(String[] args) throws Exception {// TODO Auto-generated method stubSystem.out.println("开始连接主机");Connection conn = new Connection(hostName, port);conn.connect();boolean isdenglu = conn.authenticateWithPassword(userName, pwd);if (isdenglu) {System.out.println("ssh2登陆成功");} else {System.out.println("登陆失败");}//System.out.println("当前目录:");Session ses = conn.openSession();ses.execCommand("vmstat 2");InputStream stdout = new StreamGobbler(ses.getStdout());BufferedReader br = new BufferedReader(new InputStreamReader(stdout));FileWriter fw = new FileWriter("F:\\vmstat.txt");        while (true)              {                  String line = br.readLine();                  if (line == null)                      break;            System.out.println(line);                fw.write(line+"\r\n",0,line.length()+2);    fw.flush();//    OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream("data2.txt"));//    osw.write(line,0,line.length());//    osw.flush();//    PrintWriter pw = new PrintWriter(new OutputStreamWriter(new FileOutputStream("hello3.txt")),true);//    pw.println(line);                    }        System.out.println("运行结果:"+ses.getExitStatus());//关闭文件fw.close();ses.close();conn.close();}}

10、java将控制台打印写入日志文件

import java.io.File;import java.io.FileWriter;import java.io.IOException;import java.util.Calendar;import java.util.Date;import java.util.GregorianCalendar;public class ToLog {static GregorianCalendar time = new GregorianCalendar();//int year = time.get(Calendar.YEAR);//得到日期的年份//int day = time.get(Calendar.DAY_OF_MONTH);//得到日期的天//int month = time.get(Calendar.MONTH)+1;//得到日期的月份//int weekDay = time.get(Calendar.DAY_OF_WEEK);//得到日期为星期几//int weekOfYear = time.get(Calendar.WEEK_OF_YEAR);//得到日期为年的第几周//int weekOfMonth = time.get(Calendar.WEEK_OF_MONTH);//得到日期为月的第几周private static final String getToday = time.get(Calendar.YEAR)+"-"+(time.get(Calendar.MONTH)+1)+"-"+time.get(Calendar.DAY_OF_MONTH)+"-";private static final String filePath = "C:\\Documents and Settings\\Administrator\\workspace\\Movision_script\\logs\\"+getToday+"log.html";//写入文件public void toLog(String message){StackTraceElement stack[] = (new Throwable()).getStackTrace();StackTraceElement s = stack[1];String headerMessage = s.getClassName()+"."+s.getMethodName()+"()"+"★LineNum:"+s.getLineNumber()+"<br />★Message:    ";headerMessage = addDateTimeHeader(headerMessage);message = headerMessage + message + "<br />========================================================================================================================<br /><br />";FileWriter fw = null;File file = null;try{file = new File(filePath);fw = new FileWriter(file,true);fw.write(message);}catch(IOException ie){ie.printStackTrace();}finally{try{fw.close();}catch(IOException ie){ie.printStackTrace();}}}@SuppressWarnings("deprecation")public String addDateTimeHeader(String headerMessage) {String dateTimeHeader = new Date().toLocaleString()+"★";return dateTimeHeader += headerMessage;}//public static void main(String args[]){//ToLog log = new ToLog();//String message = "这只是测试";//log.toLog(message);//}}

写分享这么多吧~各位,晚安!



原创粉丝点击