Utilisation de fichiers de données supplémentaires
Lorsque vous utilisez des fournisseurs de données personnalisés avec des suites de tests, vous devez commencer par générer un fichier de fournisseur de données de test (.tstx), qui définit les tests que vous souhaitez effectuer. Dans ce fichier, vous pouvez définir des propriétés personnalisées qui apparaissent sous forme de zones à remplir lors de la définition d'une suite de tests.
Si vous voulez aller au-delà de ces propriétés simples, vous pouvez en fait joindre un fichier personnalisé à votre suite de tests, et votre implémentation de fournisseur de données personnalisé a accès à ce fichier. Ce fichier peut être de n'importe quel type et être stocké et versionné dans la suite de tests.
Personnalisation du fichier de fournisseur de données de test (.tstx)
Après avoir généré votre fichier de fournisseur de données de test (.tstx), vous devez l'éditer pour définir votre fournisseur de données personnalisé. Dans ce cas, vous devez définir une propriété avec la valeur #{jobParameters['execution.scenario.file.bytes']} et un nom personnalisé de votre choix qui contient votre fichier de données supplémentaire.
com.mycompany.mydecision.MyDataProvider et que vous souhaitez définir myDataFile comme nom de propriété, votre section de fournisseur de données personnalisé se présente comme suit: <jsl:reader ref="com.mycompany.mydecision.MyDataProvider">
<jsl:properties>
<jsl:property name="myDataFile"
value="#{jobParameters['execution.scenario.file.bytes']}"></jsl:property>
</jsl:properties>
</jsl:reader>
Le nom de propriété que vous définissez est utilisé dans votre implémentation de fournisseur de données personnalisé pour extraire votre fichier de données.
Extraction du fichier de données à partir de l'implémentation de votre fournisseur de données personnalisé
com.ibm.rules.cdi.runtime.ext.DecisionRunnerContext#decodeResource(String resource, boolean uncompressData)Par exemple, si vous avez nommé la propriété myDataFile, comme dans l'exemple de la section précédente, vous pouvez extraire votre fichier de données comme suit:
import com.ibm.rules.cdi.runtime.ext.DecisionRunnerContext;
import
java.io.Serializable;
import javax.batch.api.BatchProperty;
import
javax.batch.api.chunk.AbstractItemReader;
import javax.inject.Inject;
public class MyDataProvider extends AbstractItemReader {
@Inject
@BatchProperty(name = "myDataFile")
String dataFile;
DecisionRunnerContext decisionRunnerContext;
public void open(Serializable checkpoint) throws
Exception {
// creating an instance of
DecisionRunnerContext to use the API
this.decisionRunnerContext = new DecisionRunnerContext();
// using the API to retrieve the data file content
byte[] dataFileContent =
(byte[])this.decisionRunnerContext.decodeResource(this.dataFile, false);
}
public Object readItem() throws Exception {
// do something with the file content
}
}
Définition de la suite de tests
Lorsque vous définissez votre suite de tests dans Decision Center, sélectionnez Fournisseur de données de test (.tstx) avec des données supplémentaires au lieu de Fournisseur de données de test (.tstx). Vous devez ensuite joindre votre fichier de données personnalisé en plus du fichier .tstx .