簡體   English   中英

從文件讀取並使用groovy腳本保存在Property中

[英]Read from file and save in Property using groovy script

我正在嘗試從文本文件中讀取兩個值,而這兩個值都在不同的行上

例如:

1234
5678

這是我嘗試的:

def f = new File('/testdata.txt') 
def records = f.readLines();

records.each {
    testRunner.testCase.setPropertyValue("IdOne",it)
    testRunner.testCase.setPropertyValue("IdTwo",it)

}

但這只是將最后一個值設置為兩個自定義屬性。

問題是您的循環重復兩次,第一次將第一個值分配給您的IdOneIdTwo屬性,第二次迭代用第二個值覆蓋這兩個屬性。 因此,您在兩個屬性中都具有最后一個迭代值。 就像@ user1708042在注釋中指出的那樣,可能的解決方案可能是簡單地不迭代並直接為屬性設置值:

def f = new File('/testdata.txt') 
def records = f.readLines()
testRunner.testCase.setPropertyValue("IdOne",records[0])     
testRunner.testCase.setPropertyValue("IdOne",records[1])

另一種可能的解決方案是合並兩個列表。 一個帶有屬性名稱,另一個帶有地圖中的值,然后遍歷設置屬性名稱和屬性值的地圖條目,例如:

def propertyName = ['IdOne','IdTwo']
def records = ['1234','5678'] // def records = new File('/testdata.txt').readLines()

def mapProperties = [propertyName,records].transpose().collectEntries()

mapProperties.each{ name, value ->
    testRunner.testCase.setPropertyValue(name,value)     
}

上面的代碼正在為我運行,但是我想從文本文件中獲取值並將其動態傳遞給數組,以便可以處理N個值

給定 -一個帶有數字列表(用戶ID)的文本文件,每次文本值都應遞增。

預期:每次應提取文本文件中的一行並將其存儲到項目級別的自定義屬性中,以便我可以使用不同的ID運行相同的測試步驟。

def f = new File('C:\\GroovyTEst.txt') 
def records = f.readLines()
testRunner.testCase.testSuite.project.setPropertyValue("VendorRideid",records[0]) // here the value should be dynamic so that i can read one by one values from the text file 

def tCase = testRunner.testCase.testSuite.testCases["ChangeRidestatus-accepted"]
def tStep = tCase.testSteps["Pending"]
    tStep.run(testRunner, context)
def tStep1 = tCase.testSteps["Change RideStatus - Accepted"]
    tStep1.run(testRunner, context)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM