Explicación detallada de ejemplos basados en datos que usan XML como fuente de datos en Java y Testng
La función de Testng es muy poderosa. Tome XML como ejemplo aquí:
Nota: El tipo de valor de retorno de @Dataprovider solo puede ser objeto [] [] e iterator <S Object> []
TestData.xml:
<? xml versión = "1.0" encoding = "utf-8"?> <sat data> <testMethod1> <input> 1 </input> <botte> 2 </botte> </testMethod1> <testMethod1> <input> 3 </put> <botte> 4 </botte> </pestmethod1> <testMethod2> <put> 3 </put> </button> 4 </poton> </testmethod1> <testMethod2> <put> 3 </put> </test Botton> <botón> 4 </boton> </testMethod4> </sates>
Use DOM4J para analizar XML, PARSERXML.JAVA ARCHIVO:
paquete com.test; import java.io.file; import java.util.arrayList; import java.util.hashmap; import java.util.iterator; import java.util.list; import java.util.map; importar org.dom4j.document; Lector; public class ParSerxml {public List parser3xml (string filename) {archivo inputxml = nuevo archivo (nombre de archivo); Map (); Hashmap (); ln (e.getMessage ());Luego, la lista analizada se convierte en datos de Object [] [] y se combina en @Dataprovider.
Archivo testdata.java:
paquete com.test; import java.io.file; import java.lang.reflect.method; import java.util.ArrayList; import java.util.hashmap; import java.util.iterator; import java.util.list; import java.util.map; import og.testng.annotations.datats; Data () {this.getxmldata (); Parserxml (); i ++) {map m = (map) l.get (i); String> dm = (map <string, string>) m.get (método.getName ());Luego pruebe el archivo de prueba:
TestDataprovider.java Archivo:
paquete com.test; import java.util.map; import org.testng.annotations.*; public class testDataprovider extiende testData {@test (dataprovider = "providermethod") public void testMethod1 (map <?> param) Providermethod ") public void testMethod2 (map <?,?> param) { System.out.println ("Method2 recibido:"+param.get ("input")); ");}}Regresemos y analicemos el archivo XML. Dos veces, TestMethod2, TestMethod3 y TestMethod4 se ejecutan una vez, y el resultado es el siguiente:
method1 received:1method1 received:3method2 received:3method3 received:3method4 received:4PASSED: testmethod1({input=1, button=2})PASSED: testmethod1({input=3, button=4})PASSED: testmethod2({input=3, button=4})PASSED: testmethod3({input=3, button=4})PASSED: testMethod4 ======================================================= ======================================================= En otras palabras, de esta manera, solo necesita escribir la función de prueba primero y luego definir los datos en el archivo XML, y puede controlar si la función se ejecuta, el número de ejecuciones y los datos que se ejecutan.
Ok, intentemos ...
¡Gracias por leer, espero que pueda ayudarlo.