0

SOAP UI 4.5 (プロ バージョンではありません) でプロジェクトの回帰テスト スイートを作成しようとしています。Excelシートからリクエストデータを読み取るためのgroovyスクリプトを作成しました。私が直面している問題は、テスト ケースをループで実行できないことです。groovy スクリプトの実行後に来るテスト ケースは、最後の値のみを取得します。各反復でテストケースを実行したい (SOAP UI pro の機能は、データソース ループを使用して実装されます)。いくつかの解決策を提案してください。Groovy スクリプトは初めてです。これまでに作成したグルーヴィーなスクリプトは次のとおりです。

import org.apache.poi.hssf.*;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.poifs.filesystem.POIFSFileSystem;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFCell;

InputStream inp = new FileInputStream("workbook.xls");
POIFSFileSystem fs = new POIFSFileSystem(inp);
HSSFWorkbook wb = new HSSFWorkbook(fs);
HSSFSheet sheet = wb.getSheetAt(0);
for (HSSFRow row : sheet) {

    def rownum = row.getRowNum();
    log.info rownum;
    def value1 = row.getCell(0).getStringCellValue();
    def value2 = row.getCell(1).getStringCellValue();
    log.info value1;
    log.info value2;
    context.setProperty("companyid",value1)
companyid = context.expand('${companyid}')
context.setProperty("operation",value2)
operation = context.expand('${operation}')
    }
4

1 に答える 1

0

soapUI での実行はシーケンシャルであり、コードが Excel のすべての行を通過し、プロパティのデータがこれが、次のステップが Excel の最後の行のデータで実行される理由です。

groovy を使用してテスト実行のフローを制御している場合、つまり、この groovy スクリプトがドライバーになります。この場合、回帰スクリプトの一部であるすべてのステップを呼び出すコードも含める必要があります。soapUI フォーラムから以下のコードを試してください。

import com.eviware.soapui.model.testsuite.TestStepResult.TestStepStatus

def testStep = .. create your teststep.. 

def result = testStep.run( testRunner, context )
if( result.status == TestStepStatus.OK )
{
...
}
else
{ 
...
}

覚えておく必要があるもう 1 つのことは、soapUI がこの groovy スクリプトの実行を終了すると、回帰は、groovy ステップで既に実行されているため、回避したい groovy ステップと同じテスト ケースの次のステップに移動することです。 . これを行うために、私は2つのことを提案できます。

  1. groovy ステップ以外のすべてのステップを無効にします。soapUI は無効化されたステップをスキップします。[テスト ステップを無効にするリンク] ( http://www.soapui.org/forum/viewtopic.php?t=126 )
  2. 次に、おそらく私のお気に入りは、Groovy コードで呼び出すすべてのステップを別のテスト ケース/テスト スイートに移動することです。

お役に立てれば!

于 2013-09-13T14:03:55.867 に答える