dataProvider數據獲取存儲數據庫
阿新 • • 發佈:2019-03-25
shadow alt druid ide watermark 獲取 request des resultset 實體報告類
CREATE TABLE `testngreport_two` ( `id` int(11) NOT NULL AUTO_INCREMENT COMMENT ‘編號‘, `uuid` varchar(100) NOT NULL COMMENT ‘編號‘, `passed` varchar(255) DEFAULT NULL COMMENT ‘通過‘, `failed` varchar(255) DEFAULT NULL COMMENT ‘失敗‘, `skipped` varchar(255) DEFAULT NULL COMMENT ‘跳過‘, `duration` varchar(255) DEFAULT NULL COMMENT ‘使用時間‘, `test_user` varchar(255) DEFAULT NULL COMMENT ‘測試用戶人員‘, `systemInfo` varchar(255) DEFAULT NULL COMMENT ‘系統信息‘, `test_time` datetime DEFAULT NULL COMMENT ‘測試時間‘, `description` varchar(255) DEFAULT NULL COMMENT ‘用例描述‘, `starttime` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT ‘開始時間‘, `endtime` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT ‘結束時間‘, `Interfacename` varchar(255) DEFAULT NULL COMMENT ‘接口名字‘, `type` varchar(255) DEFAULT NULL COMMENT ‘類型‘, `failuredetails` varchar(500) DEFAULT NULL COMMENT ‘失敗詳情‘, `testPackageNamePath` varchar(255) DEFAULT NULL COMMENT ‘包名方類名方法名‘, `requestUrl` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT ‘請求url‘, `requestBody` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT ‘請求body‘, `requestParameter` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT ‘請求參數‘, `responseBody` longtext CHARACTER SET utf8 COLLATE utf8_general_ci COMMENT ‘響應信息‘, PRIMARY KEY (`id`,`uuid`) ) ENGINE=InnoDB AUTO_INCREMENT=380 DEFAULT CHARSET=utf8;
實體請求類
import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; import lombok.experimental.Accessors; import lombok.extern.log4j.Log4j; import java.util.Map; /** * @author liwen406 * @Title: MyHttpEntity * @Description: 請求實體類 * @date 2019/3/24 / 17:54 */ @Log4j @Data @NoArgsConstructor @AllArgsConstructor @Accessors(chain = true) public class MyHttpEntity implements Entity { String url; String ip; String body; String info; Map<String, ?> parameter; Map<String, String> header; }
數據配置鏈接
import com.alibaba.druid.pool.DruidDataSourceFactory; import javax.sql.DataSource; import java.io.IOException; import java.io.InputStream; import java.sql.Connection; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.util.Properties; /** * @author liwen406 * @Title: JDBCUtils * @Description: 1. 聲明靜態數據源成員變量 * 2. 創建連接池對象 * 3. 定義公有的得到數據源的方法 * 4. 定義得到連接對象的方法 * 5. 定義關閉資源的方法 * @date 2019/3/20 / 13:34 */ public class JDBCUtils { /**1. 聲明靜態數據源成員變量*/ private static DataSource ds; /**2. 創建連接池對象*/ static { /**加載配置文件中的數據*/ InputStream is = JDBCUtils.class.getClassLoader().getResourceAsStream("application.yml"); Properties pp = new Properties(); try { pp.load(is); /** 創建連接池,使用配置文件中的參數*/ ds = DruidDataSourceFactory.createDataSource(pp); } catch (IOException e) { e.printStackTrace(); } catch (Exception e) { e.printStackTrace(); } } /** * 3. 定義公有的得到數據源的方法 * @return */ public static DataSource getDataSource() { return ds; } /** * 4. 定義得到連接對象的方法 * @return * @throws SQLException */ public static Connection getConnection() throws SQLException { return ds.getConnection(); } /** * 5.定義關閉資源的方法 * @param conn * @param stmt * @param rs */ public static void close(Connection conn, Statement stmt, ResultSet rs) { if (rs != null) { try { rs.close(); } catch (SQLException e) { } } if (stmt != null) { try { stmt.close(); } catch (SQLException e) { } } if (conn != null) { try { conn.close(); } catch (SQLException e) { } } } /*** * 6.重載關閉方法 * @param conn * @param stmt */ public static void close(Connection conn, Statement stmt) { close(conn, stmt, null); } }
數據庫sql寫法
private JdbcTemplate template = new JdbcTemplate(JDBCUtils.getDataSource());
public int savereportTwo1(TestngReport testngReport) {
testngReport.setUuid(Tool.getUUID());
testngReport.setTesttime(new Date());
int id = 0;
try {
//1.定義sql
String sql = "INSERT INTO testngreport_two(uuid,duration,test_user," +
"test_time,starttime,endtime," +
"requestUrl,requestBody,requestParameter,responseBody) VALUES (?,?,?,?,?,?,?,?,?,?)";
//2.執行sql
id = template.update(sql, testngReport.getUuid(),
testngReport.getDuration(),
testngReport.getTestuser(),
testngReport.getTesttime(),
testngReport.getStarttime(),
testngReport.getEndtime(),
testngReport.getRequestUrl(),
testngReport.getRequestBody(),
testngReport.getRequestParameter(),
testngReport.getResponseBody()
);
log.info("插入成功:" + id);
} catch (DataAccessException e) {
log.info("插入失敗");
e.printStackTrace();
}
return id;
}
test類
@DataProvider
public Object[][] getparam() {
int k = 0;
String[] param = {"2367952", "2367141", "2366552", "2364334"};
Object[][] result = new Object[param.length][];
for (int i = 0; i < param.length; i++) {
MyHttpEntity httpEntity = new MyHttpEntity();
httpEntity.setUrl("https://blog.51cto.com/357712148/" + param[i]);
result[k++] = new Object[]{httpEntity};
}
return result;
}
@Test(dataProvider = "getparam", dataProviderClass = Dataprovidert.class)
public void mydatep(MyHttpEntity httpEntity) {
TestngReportRaoimpl reportRaoimpl = new TestngReportRaoimpl();
Long starttime = System.currentTimeMillis();
HttpResponse response = HttpRequest.get(httpEntity.url).execute();
Assert.assertTrue(response.body().contains("success"));
Long endttime = System.currentTimeMillis();
TestngReport testngReport = new TestngReport();
testngReport.setRequestUrl(httpEntity.getUrl());
testngReport.setStarttime(starttime + "");
testngReport.setEndtime(endttime + "");
testngReport.setTestuser("liwen");
testngReport.setRequestParameter(httpEntity.getParameter() + "");
testngReport.setResponseBody(response.body());
testngReport.setRequestBody(httpEntity.getBody());
testngReport.setDuration((endttime - starttime) + "毫秒");
reportRaoimpl.savereportTwo1(testngReport);
}
結果:
dataProvider數據獲取存儲數據庫