日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

testng连接MySQL_Selenium+TestNG实战-8-连接数据库方法去验证文章是否发布

發布時間:2025/3/15 数据库 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 testng连接MySQL_Selenium+TestNG实战-8-连接数据库方法去验证文章是否发布 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

原標題:Selenium+TestNG實戰-8-連接數據庫方法去驗證文章是否發布

記得之前群里,有人說舉例一下連接數據庫在Selenium自動化測試中的應用。本篇剛好來舉例一個,前面我們都是通過發布后文章的詳情頁的標題來判斷文章是否已經發布成功,這篇就通過數據查找來判斷。個人意見,在Selenium自動化中一般還是少用數據庫查詢去斷言成功還是失敗,效率是一回事,還有就是一般軟件系統都很大,數據庫中有很多表,開發都不一定弄得清楚這些表,何況測試人員更加困難去理清這些表。

請點擊此處輸入圖片描述

1. 前提條件

去MySQL官網下載一個mysql-connector-java的jar包。https://dev.mysql.com/downloads/file/?id=472651,解壓后拷貝jar到我們之前的eclipse項目并添加到項目的Library

請點擊此處輸入圖片描述

配置文件

請點擊此處輸入圖片描述

2. 實現過程

1) 寫一個連接數據庫的類,放在myframework包下。

package myframework;

import java.io.FileInputStream;

import java.io.IOException;

import java.io.InputStream;

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.SQLException;

import java.util.Properties;

public class ConnectMySql {

private String DBUrl;

private String DBName;

private String DBUser;

private String DBPwd;

/**

* 讀取配置文件內容來獲取數據庫信息

*/

public void readDBConfigInfo() {

try {

Properties p = new Properties();

// 加載配置文件

InputStream ips = new FileInputStream(".\\TestConfig\\config.properties");

p.load(ips);

Logger.Output(LogType.LogTypeName.INFO, "Start to connect to mysql database.");

DBUrl = p.getProperty("Database_URL").trim();

Logger.Output(LogType.LogTypeName.INFO, "the database host is: "+ DBUrl);

DBName = p.getProperty("Database_Name").trim();

Logger.Output(LogType.LogTypeName.INFO, "The name of the database is: "+ DBName);

DBUser = p.getProperty("Database_Username").trim();

Logger.Output(LogType.LogTypeName.INFO, "the username of database is: "+ DBUser);

DBPwd = p.getProperty("Database_Password").trim();

ips.close();

} catch (IOException e) {

Logger.Output(LogType.LogTypeName.ERROR, "無法正常加載配置文件,請檢查文件路徑和相關設置");

}

}

public Connection getConnection() throws ClassNotFoundException {

String URL = "jdbc:mysql://"+DBUrl+":3306/"+DBName;

Connection conn = null;

try {

//1.加載驅動程序

Class.forName("com.mysql.jdbc.Driver");

//2.獲得數據庫的連接

conn = DriverManager.getConnection(URL, DBUser, DBPwd);

//3.通過數據庫的連接操作數據庫,實現增刪改查

} catch (SQLException e) {

Logger.Output(LogType.LogTypeName.ERROR, "SQL異常"+e.toString());

}

// 返回給調用者

return conn;

}

/**

* 關閉數據庫連接方法

* @param conn

*/

protected static void closeConnection(Connection conn) {

if (conn != null) {

try {

conn.close();

} catch (SQLException e) {

e.printStackTrace();

}

}

}

}

主要有鏈接數據庫和關閉數據庫兩個方法。

2)寫一個測試類來測試下

package testsuites.article;

import java.io.IOException;

import java.sql.Connection;

import java.sql.ResultSet;

import java.sql.SQLException;

import java.sql.Statement;

import org.openqa.selenium.WebDriver;

import org.openqa.selenium.support.PageFactory;

import org.testng.Assert;

import org.testng.annotations.AfterClass;

import org.testng.annotations.BeforeClass;

import org.testng.annotations.Test;

import myframework.ConnectMySql;

import pageobjects.Login;

import pageobjects.MenuNavigation;

import pageobjects.article.writeacticle.NewArticle;

public class NewArticleTest {

public WebDriver driver;

Connection conn = null;

ConnectMySql cm = new ConnectMySql();

@BeforeClass

public void setUp() throws ClassNotFoundException {

try {

Login.initSetup();

} catch (IOException e) {

e.printStackTrace();

}

Login.loginValid();

driver = Login.driver;

try {

cm.readDBConfigInfo();

conn = cm.getConnection();

} catch (Exception e) {

e.printStackTrace();

}

}

@AfterClass

public void tearDown() throws SQLException {

conn.close();

driver.quit();

}

@Test

public void testNewArticle() throws SQLException {

//初始化導航菜單頁面

MenuNavigation mn = PageFactory.initElements(driver, MenuNavigation.class);

mn.clickArticle();

mn.clickNewArticle();

//初始化寫文章頁面

NewArticle na = PageFactory.initElements(driver, NewArticle.class);

String title = "我的第一篇自動化發布的文章1";

String bodyContent = "第一行,這篇是演示如何通過自動化腳本來發布一篇文章123。";

na.publishArticle(title, bodyContent);

// 數據庫連接進行判斷

//創建statement類對象,用來執行SQL語句!!

Statement statement = conn.createStatement();

//要執行的SQL語句

String sql = "select * from wp_posts where post_title ='"+title+"'";

//ResultSet類,用來存放獲取的結果集!!

ResultSet rs = statement.executeQuery(sql);

while(rs.next()) {

String db_content = rs.getString("post_content");

// 斷言文章正文內容是否相同

Assert.assertEquals(bodyContent, db_content);

rs.close();

}

}

}

總的來說,當selenium自動化的斷言中,如果要引入數據庫查詢,還是比較麻煩,步驟也很啰嗦,除非一定要數據庫數據校驗,否則采用前端手動測試的斷言方法去斷言就可以。

相關代碼:

責任編輯:

總結

以上是生活随笔為你收集整理的testng连接MySQL_Selenium+TestNG实战-8-连接数据库方法去验证文章是否发布的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。