gro腳本
❶ groovy腳本中字元串怎樣拼空格
Groovy字元串及其常用方法
字元串方法
與java不同,在GString中提供了多種表示字元串的方法,分別是單引號字元串、雙引號字元串、三單引號字元串、三雙引號字元串、斜杠字元串和$修飾的斜杠字元串。
單引號字元串
單引號字元串是一系列被單引號包圍的字元,是普通的java.lang.String。不支持插值。
def str = 'groovy'
assert str.class == java.lang.String
三單引號字元串
三單引號字元串是一列被三個單引號包圍的字元,是普通的java.lang.String。不支持插值。
def str = '''groovy'''
assert str.class == java.lang.String
三單引號字元串是多行的。你可以使字元串內容跨越行邊界,不需要將字元串分割為一些片段,不需要連接,或換行轉義符:
def str = '''
one
two
three'''
//需要注意的是,這個字元串每一次換行都包含了一個換行轉義符:
assert str.contains("\n") == true
assert str.size() == 14
//可以通過使用反斜杠換行符剝離該字元
def str = '''\
one\
two\
three'''
assert str.contains("\n") == false
assert str.size() == 11
❷ 如何使用gradle構建工具打包groovy腳本成jar文件
准備工作安裝 gradle, groovy。
要使用gradle的groovy plugin 來打包groovy 腳本,項目結構。
目錄 含義
src/main/java Java 代碼
src/main/resources Java需要的資源文件
src/main/groovy Groovy代碼,也可以包含Java代碼
src/test/java Java 測試代碼
src/test/resources 測試需要的資源文件
src/test/groovy Groovy測試需要的資源文件
src/sourceSet/java Java代碼源
src/sourceSet/resources 資源文件源
src/sourceSet/groovy Groovy代碼源
我們只需要編譯打包groovy腳本 所以只需要創建 src/main/groovy目錄結構。例子:
gradle_groovy_archive項目 結構是:
gradle_groovy_archive
創建helloWorld.groovy腳本,代碼如下:
package hello
println 'Gradle compile groovy'
創建Gradle構建文件:
apply plugin: 'groovy'
apply plugin: 'maven'
group = 'com.hello'
archiveBaseName = 'hello'
version = '0.1-SNAPSHOT'
defaultTasks 'clean', 'jar'
configurations {
deployerJars
}
repositories {
mavenCentral()
}
dependencies {
//使用本地groovy環境
groovy localGroovy()
//groovy group: 'org.codehaus.groovy', name: 'groovy', version: '1.8.6'
compile fileTree( dir: 'lib', include: ['*.jar'])
deployerJars 'org.apache.maven.wagon:wagon-webdav-jackrabbit:1.0-beta-7'
}
sourceSets {
main {
groovy {
srcDir 'src/main/groovy'
}
}
}
uploadArchives {
repositories.mavenDeployer {
uniqueVersion = false
configuration = configurations.deployerJars
repository(id : repositoryId, url : repositoryUrl) {
authentication (userName : 'deployment', password : 'deployment')
proxy()
}
}
}
創建構建文件屬性文件:
//根據不同情況修改
repositoryId=ND
repositoryUrl=ND
systemProp.http.proxyHost=ND
systemProp.http.proxyPort=8080
systemProp.http.proxyUser=ND
systemProp.http.proxyPassword=ND
在命令行中 敲 gradle 運行,會自動運行 defaultTasks,clean 和 jar,會把 所有groovy下的腳本打成jar包。
❸ Groovy怎麼調用本地命令.比如我要在Groovy腳本中調用cmd命令
Androidstudio使用groovyconsole命令的具體方法如下:進行打開Androidstudio的軟體,進入到界面中,進行點擊菜單中的「tools」的選項。就會彈出了一個下拉的菜單的選項,進行選擇下拉的菜單中的「Groovyconsole」的選項。在代碼的窗口當中就會彈出了一個窗口,進行選擇一個為「app」的選項。然後就會在底部的位置中進行彈出了一個Groovyconsole的命令的窗口。在Groovyconsole的命令的窗口中進行輸入一條命令」system.out.println("小蝦")「,然後進行點擊左側位置中的運行按鈕。這樣就會彈出了執行的命令的結果中內容,要關閉Groovyconsole的命令的窗口,進行點擊」關閉「按鈕。就會彈出了一個process」Groovyconsole「isRunning命令窗口確認框,進行點擊discounect的按鈕。
❹ 如何使用Elasticsearch groovy script腳本更新數據
用groovy腳本自定義ElasticSearch查詢,來實現以上功能。
例,數據中包含欄位birdtyday,記錄遊客生日:
"birthday": "1992-02-05 00:00:00",
新建文件getAgeByBirthday.groovy,編輯其內容為:
def b = doc[birthday_field].value
def birthday = new Date(b)
def now = new Date()
long age = (now -birthday)/365
age
並把此文件放在es的config/scripts目錄下(如果沒有此目錄就新建一個)。
然後在config/elasticsearch.yml文件中加一行:
script.groovy.sandbox.enabled: true
最後重啟es即可。
接下來,我們就可以用以下DSL進行年齡統計了
GET /lovingtrip-report/hotelcustomer/_search?search_type=count
{
"aggs": {
"counts_by_age": {
"terms": {
"script_file": "getAgeByBirthday",
"params": {
"birthday_field": "birthday"
},
"size": 100
}
}
}
}
或者:
GET /lovingtrip-report/hotelcustomer/_search?search_type=count
{
"aggs": {
"histogram_by_age": {
"histogram": {
"script_file": "getAgeByBirdthday",
"params": {
"birdthday_field": "birdthday"
},
"interval": 5
}
}
}
}
不過腳本查詢性能不佳,且不能利用es的緩存,所以在大數據量或高性能要求的場景下不適用。。
-------------------------------------
補充一個自定義的年齡range過濾:
range_AgeByBirthday.groovy:
def b = doc[birdthday_field].value
def birdthday = new Date(b)
def now = new Date()
long age = (now -birdthday)/365
gte<=age && age<=lte
DSL:
GET /lovingtrip-report/hotelcustomer/_search?search_type=count
{
"query": {
"filtered": {
"filter": {
"script": {
"script_file": "range_AgeByBirdthday",
"params": {
"birdthday_field": "birdthday",
"gte": 50,
"lte": 60
}
}
}
}
},
"aggs": {
"histogram_by_age": {
"histogram": {
"script_file": "getAgeByBirdthday",
"params": {
"birdthday_field": "birdthday"
},
"interval": 5
}
}
}
}
❺ 如何從Groovy腳本輸出重定向
1. 嘗試綁定public void exec(File file, OutputStream output) throws Exception {
Binding binding = new Binding()
binding.setProperty("out", output)
GroovyShell shell = new GroovyShell(binding);
shell.evaluate(file);
}
Groovy腳本def name='World'
out << "Hello $name!"
2. 使用SystemOutputInterceptor類。你就可以開始攔截腳本之前評估和輸出後停止。
3. 正是您需要的。
4. 我懷疑你可以通過覆蓋做到這一點相當不錯的println方法在你的了GroovyShell「在Groovy控制台以下工作:StringBuilder b = new StringBuilder()
this.metaClass.println = {
b.append(it)
System.out.println it
}
println "Hello, world!"
System.out.println b.toString()
輸出:Hello, world!
Hello, world!
5. javax.script.ScriptEngine中怎麼樣?你可以指定它的作家。ScriptEngine engine = new ScriptEngineManager().getEngineByName("Groovy");
PrintWriter writer = new PrintWriter(new StringWriter());
engine.getContext().setWriter(writer);
engine.getContext().setErrorWriter(writer);
engine.eval("println 'HELLO'")
❻ soapui中的groovy腳本怎麼寫
下載並安裝 SoapUI 的免費版本.
當你第一次運行時,看起來像下面這樣:
我創建了一個工作空間存儲我的項目,叫做 Automation. 為此,我們要去選擇 『File』-> 『New Soap Project』 ,填入項目名稱和web服務的.wsdl 文件位置.
請確保你勾選了創建請求 'Create Requests' 和創建測試套件 'Create TestSuite', 然後點擊 'OK'.
SoapUI 將會檢查web服務,返回你可以在服務上調用的操作/方法. 在我的任務中,只有一個叫做SubmitRequestResponse的操作, 但我還是選擇了 'Single TestCase with One Request for Each Operation'.
點擊 'OK' 而你將會收到提醒,告知要為Test SuiteMultiple命名.
現在當SoapUI已經設置好了項目, 展開整個項目結構如下:
如果你在 Request 1 上單擊, 你可以看到一個基礎的請求格式.
LeoXu
翻譯於 5個月前
0人頂
頂 翻譯的不錯哦!
我們需要在繼續進行之前確保調用從web服務上獲得了一個響應,所以我們添加一個soap請求。在我的情況里,web服務需要一個客戶號跟著一個地點位置標簽跟著一個或多個SalesOrders。所以我在 body 中用我的soap請求替換<part>?</part>標簽。
點擊綠色箭頭(左上方)然後你將獲得一個XML響應。
如果你有響應,那麼你就在你需要在的地方。
❼ 什麼是 Groovy
● 是一個基於 Java虛擬機的敏捷 動態語言。 ● 構建在強大的Java語言之上 並 添加了從Python,Ruby和Smalltalk等語言中學到的 諸多特徵。 ●為Java開發者提供了 現代最流行的編程語言特性,而且學習成本很低(幾乎為零)。 ● 支持DSL(Domain Specific Languages領域定義語言)和其它簡潔的語法,讓你的代碼變得易於閱讀和維護。 ● Groovy擁有處理原生類型,面向對象以及一個Ant DSL,使得創建Shell Scripts變的非常簡單。 ● 在開發Web,GUI,資料庫或控制台程序時 通過 減少框架性代碼 大大提高了開發者的效率。 ● 支持單元測試和模擬(對象),可以 簡化測試。 ● 無縫集成 所有已經存在的 Java對象和類庫。 ● 直接編譯成Java位元組碼,這樣可以在任何使用Java的地方 使用Groovy。 Groovy 的一個好處是,它的語法與 Java 語言的語法很相似。雖然 Groovy 的語法源於 Smalltalk 和 Ruby 這類語言的理念,但是可以將它想像成 Java 語言的一種更加簡單、表達能力更強的變體。(在這點上,Ruby 與 Groovy 不同,因為它的語法與 Java 語法差異很大。) Groovy 快捷方式 開始使用 Groovy 時,您會發現它使日常的編程活動變得快了許多。完成本教程之後,您會了解更多的 Groovy 語法快捷方式。不過現在只需知道以下這些要點: Groovy 的鬆散的 Java 語法允許省略分號和修改符。 除非另行指定,Groovy 的所有內容都為 public。 Groovy 允許定義簡單腳本,同時無需定義正規的class 對象。 Groovy 在普通的常用 Java 對象上增加了一些獨特的方法和快捷方式,使得它們更容易使用。 Groovy 語法還允許省略變數類型。 Groovy 的新增特性 雖然Groovy 允許省略 Java 語法中的一些元素,但也增加了一些新特性,例如本地集合、內置的正則表達式和閉包。在標準的 Java 代碼中,如果想要創建一個項列表,首先要導入java.util.ArrayList,然後程序化地初始化 ArrayList 實例,然後 再向實例中添加項。在 Groovy 中,列表和映射都內置在語法中 — 無需導入任何內容。正則表達式也不需要額外的導入或對象;它們可以通過特殊的 Groovy 語法來創建。 關於閉包 對於任何 Java 開發人員來說,閉包都是一個令人興奮的新技巧。這些神奇的構造將會包含在未來的 Java 發行版(很可能是 Java 7)中,成為正式的 Java 語法,但現在已經可以在 Groovy 中使用了。可以將閉包 想像為一個代碼塊,可以現在定義,以後再執行。可以使用這些強大的構造做許多漂亮的事,不過最著名的是簡化迭代。使用 Groovy 之後,就有可能再也不需要編寫Iterator 實例了。 動態的 Groovy 從技術上講,Groovy 可能是您最近聽說過的類型最鬆散的動態語言之一。從這個角度講,Groovy 與 Java 語言的區別很大,Java 語言是一種固定類型語言。在 Groovy 中,類型是可選的,所以您不必輸入String myStr = "Hello"; 來聲明 String 變數,可以使用def myStr = "Hello";(分號可有可無)。 除此之外,Groovy 代碼還能在運行時輕松地改變自己。這實際上意味著,能夠在運行時輕松地為對象指定新方法和屬性。這一編程領域稱為元編程,Groovy 能夠很好地支持這種編程方式。在學習本教程的過程中,您將了解到關於 Groovy 的動態性質的更多內容。現在惟一要補充的是,您會驚訝地發現,在 Groovy 會使操作 XML 或普通的 java.io.File 實例變得非常輕松。 一體兩面 用Groovy 編寫的任何內容都可以編譯成標準的 Java 類文件並在 Java 代碼中重用。類似地,用標准 Java 代碼編寫的內容也可以在 Groovy 中重用。所以,可以輕易地使用 Groovy 為 Java 代碼編寫單元測試。而且,如果用 Groovy 編寫一個方便的小工具,那麼也可以在 Java 程序中使用這個小工具。 Groovy是用Java實現的開源腳本語言並且和它聯系緊密.它需要JDK 1.4. Groovy向Java添加了許多Ruby和Python腳本語言的特性. Groovy的特性包括動態類型(dynamic typing), 閉包(closures),簡單對象導航( easy object navigation)和更加簡潔的Lists和Maps語法. Groovy是由James Strachan和Bob McWhirter創造的. James還參與了許多其他開源項目的開發,其中包括Jelly, dom4j, Jaxen, Betwixt和Maven. Bob是Jaxen和Drools (一個開源的面向對象的JAVA規則引擎) 的創始人. 目前最新穩定版為Groovy1.8。
❽ 性能測試groovy腳本怎麼調用參數
...
public static NVPair[] params = []
public static List<String> lineList
public def param
public def lineNumber = 0
@BeforeProcess
public static void...
...
request = new HTTPRequest()
lineList = new File("./resources/param.txt").readLines("UTF-8") //參數化數組存放路徑
在腳本中需要使用參數化替代的位置使用param代替,取數方式根據需要採取順序、隨機、唯一等。
❾ 如何在groovy腳本定義全局變數
例如,我們經常需要對一個字元串進行如下的判斷: if(str!=null&&!str.equals("")) { ...... }輸入這樣的語句的確使人生厭,而且有時候還會忘掉輸入「!str.equals("")」語句中的「!」導致代碼出現邏輯錯誤。