Explicação detalhada de exemplos orientados a dados usando XML como fonte de dados em java e testng
A função do teste é muito poderosa. Você pode usar o @DataProvider para ser usado como driver de dados. O arquivo de origem de dados pode ser Excel, XML, YAML ou mesmo texto txt. Tome o XML como um exemplo aqui:
NOTA: O tipo de valor de retorno do @DataProvider pode ser apenas objeto [] [] e iterator <ject> []
TestData.xml:
<? xml versão = "1.0" coding = "utf-8"?> <data> <Testmethod1> <input> 1 </input> <butter> 2 </botão> </sethod1> </testmethod1> <input> 3 </input> <butt> </button> </button> <//</</</</</<//<//TestMethod1> </testmethod> <butter> 4 </butut> </sousethod4> </da data>
Use DOM4J para analisar XML, Parserxml.java Arquivo:
pacote com.test; importar java.io.file; importar java.util.arraylist; importar java.util.hashmap; importar java.util.iterator; importar java.util.list; import.dom4j.util.map; importar org.4j.document; importação; org.dom4j.io.saxReader; public class parserxml {public list parseser3xml (string filename) {arquivo inputxml = new file (nome do arquivo); Lista da lista = new ArrayList (); int count = 1; Saxreader saxreader = new saxReader (); tente {document document = saxreader.read (inputxml); Elemento funcionários = document.getrootelement (); for (iterator i = funcionário.ElementIterator (); i.hasnext ();) {elemento funcionário = (elemento) i.next (); Mapa mapa = new hashmap (); Mapa tempmap = new hashmap (); for (iterador j = funcionário.Elementiterator (); j.hasnext ();) {node elemento = (elemento) j.Next (); tempmap.put (node.getName (), node.getText ()); } map.put (funcionário.getName (), tempmap); list.add (mapa); }} catch (documentException e) {System.out.println (e.getMessage ()); } Lista de retorno; }}Em seguida, a lista analisada é convertida em dados do objeto [] [] e combinada em @dataprovider.
Arquivo testdata.java:
pacote com.test; importar java.io.file; importar java.lang.reflect.method; importar java.util.arraylist; importar java.util.hashmap; importar java.util.iterator; import java.util.list; importannTa.utat.TapTil.Teator; {lista privada l; public testData () {this.getxmldata (); } public void getxmldata () {parserxml p = new parserxml (); l = p.Parser3xml (novo arquivo ("src/com/test/testdata.xml"). getAbsolutepath ()); } @DataProvider public Object [] [] ProviderMethod (método do método) {list <map <string, string >> resultado = new ArrayList <map <string, string >> (); for (int i = 0; i <l.size (); i ++) {map m = (map) l.get (i); if (m.containsKey (métod.getName ())) {map <string, string> dm = (map <string, string>) m.get (métod.getName ()); resultado.add (dm); }} Object [] [] arquivos = novo objeto [result.size ()] []; for (int i = 0; i <resultado.size (); i ++) {files [i] = novo objeto [] {resultado.get (i)}; } retornar arquivos; }}Em seguida, teste o arquivo de teste:
TestDataProvider.java Arquivo:
pacote com.test; importar java.util.map; importar org.testng.annotações. } @Test (DataProvider = "providermethod") public void testMethod2 (map <?,?> Param) {System.out.println ("Method2 recebido:"+param.get ("input")); } @Test (DataProvider = "providerMethod") public void testMethod3 (map <?,?> Param) {System.out.println ("Método3 recebido:"+param.get ("input")); } @Test public void testMethod4 () {System.out.println ("Método4 recebido: 4"); }}Vamos voltar e analisar o arquivo XML. Existem dois nós TestMethod1, TestMethod2, TestMethod3 e TestMethod4. No arquivo TestDataProvider.java, são definidas quatro funções de teste: testmethod1, testmethod2, testmethod3 e testmethod4. O TestMethod4 não usa DataProvider; portanto, o resultado final deve ser que o testMethod1 seja executado duas vezes, o testMethod2, o testMethod3 e o testMethod4 é executado uma vez, e o resultado é o seguinte:
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, Botão = 4}) Passado: testmethod4================================================================================ ============================================================================================================================== Em outras palavras, dessa maneira, você só precisa escrever a função de teste primeiro e, em seguida, definir os dados no arquivo XML e controlar se a função é executada, o número de execuções e os dados que são executados.
Ok, vamos tentar ...
Obrigado pela leitura, espero que isso possa ajudá -lo. Obrigado pelo seu apoio a este site!