轉(zhuǎn)帖|大數(shù)據(jù)新聞|編輯:蔣永|2019-03-22 14:34:48.000|閱讀 321 次
概述:本文主要描述新的測試實(shí)用程序如何工作以及如何在應(yīng)用程序測試中使用它們。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關(guān)鏈接:
盡管Kudu服務(wù)器是用C ++編寫的,用于提高性能和效率,但開發(fā)人員可以用C ++,Java或Python編寫客戶端應(yīng)用程序。為了讓Java開發(fā)人員更容易創(chuàng)建可靠的客戶端應(yīng)用程序,我們在Kudu 1.9.0中添加了新的實(shí)用程序,可以輕松使用Kudu集群編寫測試,不需要自己構(gòu)建Kudu,不需要任何C ++知識,也不需要每次測試開始和停止Kudu集群的復(fù)雜協(xié)調(diào)。本文主要描述新的測試實(shí)用程序如何工作以及如何在應(yīng)用程序測試中使用它們。
如果您對此測試有疑問,歡迎聯(lián)系慧都大數(shù)據(jù)在線客服,慧都大數(shù)據(jù)提供數(shù)據(jù)采集-處理-建模-可視化分析的全方位解決方案,實(shí)現(xiàn)企業(yè)決策智能化!
話不多說,開始我們今天的主題。
要使用新的測試實(shí)用程序,必須滿足以下要求:
macOS El Capitan (10.11) 或以上
CentOS 6.6+, Ubuntu 14.04+, 或其它Kudu支持的最新Linux發(fā)行版
Java 8+
注:Java 7+已棄用,但仍支持
Maven 3.1或以上,要求支持os-maven-plugin
Gradle 2.1或以上,要求支持osdetector-gradle-plugin
任何其他可以從Maven下載正確jar的構(gòu)建工具
要使用Kudu測試實(shí)用程序,請在類路徑中添加兩個依賴項(xiàng):
kudu-test-utils依賴項(xiàng)具有用于測試使用Kudu應(yīng)用的實(shí)用程序。 首先,它提供了KuduTestHarness類來管理每個測試的Kudu集群的生命周期。 KuduTestHarness是一個JUnit TestRule,它不僅可以為每個測試啟動和停止Kudu集群,還有方法來管理集群并獲取預(yù)先配置的KuduClient實(shí)例,以便在測試時使用。
kudu-binary依賴項(xiàng)包含指定操作系統(tǒng)的原生Kudu(服務(wù)器和命令行工具)二進(jìn)制文件。 為了正在運(yùn)行的操作系統(tǒng)下載正確的工件,最簡單的方法是使用插件(例如os-maven-plugin或osdetector-gradle-plugin)來檢測當(dāng)前的運(yùn)行時環(huán)境。 KuduTestHarness將自動在類路徑中查找并使用kudu-binary jar。
警告:kudu-binary模塊應(yīng)僅用于運(yùn)行Kudu進(jìn)行集成測試。它永遠(yuǎn)不應(yīng)該用于在生產(chǎn)或開發(fā)中運(yùn)行實(shí)際的Kudu服務(wù),因?yàn)閗udu-binary模塊包含已從構(gòu)建系統(tǒng)復(fù)制的本機(jī)安全相關(guān)依賴項(xiàng),當(dāng)運(yùn)行時主機(jī)上的操作系統(tǒng)打補(bǔ)丁時并不會被修補(bǔ)。
如果您使用Maven構(gòu)建項(xiàng)目,請將以下條目添加到項(xiàng)目的pom.xml文件中:
kr.motd.maven os-maven-plugin 1.6.2 org.apache.kudu kudu-test-utils 1.9.0 test org.apache.kudu kudu-binary 1.9.0 ${os.detected.classifier} test
如果您使用Gradle構(gòu)建項(xiàng)目,請將以下條目添加到項(xiàng)目的build.gradle文件中:
plugins { // Used to find the right kudu-binary artifact with the Gradle // property ${osdetector.classifier} id "com.google.osdetector" version "1.6.2" } dependencies { testCompile "org.apache.kudu:kudu-test-utils:1.9.0" testCompile "org.apache.kudu:kudu-binary:1.9.0:${osdetector.classifier}" }
正確配置項(xiàng)目后,可以使用kudu-test-utils和kudu-binary工件開始編寫測試。 這一行代碼將確保每個測試自動啟動和停止真正的Kudu群集,并通過slf4j輸出群集日志記錄:
@Rule public KuduTestHarness harness = new KuduTestHarness();
KuduTestHarness具有獲取預(yù)配置客戶端,啟動和停止服務(wù)器等的方法。下面是一個示例測試,展示了一些功能:
import org.apache.kudu.*; import org.apache.kudu.client.*; import org.apache.kudu.test.KuduTestHarness; import org.junit.*; import java.util.Arrays; import java.util.Collections; public class MyKuduTest { @Rule public KuduTestHarness harness = new KuduTestHarness(); @Test public void test() throws Exception { // Get a KuduClient configured to talk to the running mini cluster. KuduClient client = harness.getClient(); // Some of the other most common KuduTestHarness methods include: AsyncKuduClient asyncClient = harness.getAsyncClient(); String masterAddresses= harness.getMasterAddressesAsString(); ListmasterServers = harness.getMasterServers(); List tabletServers = harness.getTabletServers(); harness.killLeaderMasterServer(); harness.killAllMasterServers(); harness.startAllMasterServers(); harness.killAllTabletServers(); harness.startAllTabletServers(); // Create a new Kudu table. String tableName = "myTable"; Schema schema = new Schema(Arrays.asList( new ColumnSchema.ColumnSchemaBuilder("key", Type.INT32).key(true).build(), new ColumnSchema.ColumnSchemaBuilder("value", Type.STRING).key(true).build() )); CreateTableOptions opts = new CreateTableOptions() .setRangePartitionColumns(Collections.singletonList("key")); client.createTable(tableName, schema, opts); KuduTable table = client.openTable(tableName); // Write a few rows to the table KuduSession session = client.newSession(); for(int i = 0; i < 10; i++) { Insert insert = table.newInsert(); PartialRow row = insert.getRow(); row.addInt("key", i); row.addString("value", String.valueOf(i)); session.apply(insert); } session.close(); // ... Continue the test. Read and validate the rows, alter the table, etc. }
有關(guān)使用KuduTestHarness的項(xiàng)目的完整示例,請參閱Kudu源代碼存儲庫中的java-example項(xiàng)目。Kudu項(xiàng)目本身使用KuduTestHarness進(jìn)行所有自己的集成測試。對于更復(fù)雜的示例,您可以在Kudu源代碼庫中探索各種Kudu集成測試。
Kudu 1.9.0是第一個提供這些測試實(shí)用程序的版本。 雖然這些實(shí)用程序簡化了Kudu應(yīng)用程序的測試,但總有改進(jìn)的余地。
歡迎撥打慧都熱線023-68661681或咨詢,我們將幫您轉(zhuǎn)接大數(shù)據(jù)專業(yè)團(tuán)隊(duì),并發(fā)送相關(guān)資料給您!
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉(zhuǎn)載自: