1
Webサービスの自動化に問題があります。SOAPUIを使用した複数のテストケースのループテストステップ
実際に私は必要なすべての入力および出力を含むExcelシートを持っています。
私は出力を取得し、Excelの出力でそれらを比較、クエリを実行し、プロパティに保存、入力を取得Groovyのスクリプトを書きました。
私の問題は、すべてのプロセスが1つのテストケースとして実行されることです。
私はExcelシートのすべての行がテストケースとして扱われているように、私のプロセスを「ヒモ」にしたいです。
import jxl.*
import jxl.write.*
Workbook workbook1 = Workbook.getWorkbook(new File("C:\\Users\\****\\Desktop\\GroovyPSSheet.xls"))
Sheet sheet1 = workbook1.getSheet(0)
for (int i=6; i<sheet1.getRows(); i++)
{
sleep 1000
if (sheet1.getCell(0,i).getContents()=="")
{
i++
}
Cell clairance = sheet1.getCell(3,i)
Cell etatpatho = sheet1.getCell(2,i)
Cell idlReq = sheet1.getCell(1,i)
Cell idprod = sheet1.getCell(0,i)
Cell typeprod = sheet1.getCell(4,i)
testRunner.testCase.setPropertyValue("clairance", clairance.getContents())
testRunner.testCase.setPropertyValue("etatpatho", etatpatho.getContents())
testRunner.testCase.setPropertyValue("idlReq", idlReq.getContents())
testRunner.testCase.setPropertyValue("idprod", idprod.getContents())
testRunner.testCase.setPropertyValue("typeprod", typeprod.getContents())
sleep 500
def ExecuteQuery = testRunner.testCase.testSteps['ExecuteQuery']
ExecuteQuery.run(testRunner, context)
sleep 1000
groovyUtils = new com.eviware.soapui.support.GroovyUtils(context)
holder = groovyUtils.getXmlHolder ("ExecuteQuery#Response")
id_type_alerte = holder.getNodeValue("//id_type_alerte")
testRunner.testCase.setPropertyValue("id_type_alerte", sheet1.getCell(5,i).getContents())
idproduit = holder.getNodeValue("//idproduit")
testRunner.testCase.setPropertyValue("idproduit", sheet1.getCell(6,i).getContents())
typeproduit = holder.getNodeValue("//typeproduit")
testRunner.testCase.setPropertyValue("typeproduit", sheet1.getCell(7,i).getContents())
id_ter_per = holder.getNodeValue("//id_ter_per")
testRunner.testCase.setPropertyValue("id_ter_per", sheet1.getCell(8,i).getContents())
lib_ter_per = holder.getNodeValue("//lib_ter_per")
testRunner.testCase.setPropertyValue("lib_ter_per", sheet1.getCell(9,i).getContents())
id_ter_com = holder.getNodeValue("//id_ter_com")
testRunner.testCase.setPropertyValue("id_ter_com",sheet1.getCell(10,i).getContents())
id_typ_ter = holder.getNodeValue("//id_typ_ter")
testRunner.testCase.setPropertyValue("id_typ_ter", sheet1.getCell(11,i).getContents())
lib_ter = holder.getNodeValue("//lib_ter")
testRunner.testCase.setPropertyValue("lib_ter", sheet1.getCell(12,i).getContents())
id_nature_ci = holder.getNodeValue("//id_nature_ci")
testRunner.testCase.setPropertyValue("id_nature_ci", sheet1.getCell(13,i).getContents())
id_ter = holder.getNodeValue("//id_ter")
testRunner.testCase.setPropertyValue("id_ter", sheet1.getCell(14,i).getContents())
id_sequence_ter = holder.getNodeValue("//id_sequence_ter")
testRunner.testCase.setPropertyValue("id_sequence_ter", sheet1.getCell(15,i).getContents())
id_fic_ci = holder.getNodeValue("//id_fic_ci")
testRunner.testCase.setPropertyValue("id_fic_ci", sheet1.getCell(16,i).getContents())
sleep 1000
}
workbook1.close()
ありがとう:
はここでグルーヴィーなコードです!
はい、あなたがコードを提供すれば ':'を助けやすくなります。 – albciff
@albciffコードが追加されました! thx :) –
このコードは特定の* testCase *内で実行され、常に* testStep *を取得するのではなく、* testSuite *の次の* testCase *を各行に渡します: 'testRunner.testCase.testSteps [ ExecuteQuery '] '現在の* testCase *から? – albciff