6、TestNG傳遞參數

TestNG能夠經過testng.xml和Data Providers向測試方法傳遞參數java

利用testNG.xml傳遞參數ide

1-建立一個TestNG測試類測試

其中 parameters = {"xml-file","hostname"} 使用來接受參數的,由於有兩個值因此有兩個參數ui

package com.lc.testChuanCan;

import org.testng.annotations.Test;

public class testNG05 {
  @Test(parameters = {"xml-file","hostname"})
  public void testNG05_01(String xmlfile,String hostname) {
      System.out.println("我是testNG05 類的testNG05——01方法,\n我傳遞參數是\nxml-file:"+xmlfile+"\nhostname:"+hostname);
  }
}

2-建立一個TestNG.xml文件spa

設置參數標籤code

 <parameter name="xml-file" value="accounts.xml"></parameter>
 <parameter name="hostname" value="arkonis.example.com"></parameter>
標籤:parameter
anme:至關於key ,變量名稱;對應TestNG測試類的 parameters = {"xml-file","hostname"} 裏面參數名稱,名字要同樣
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="Suite" parallel="none">
 <parameter name="xml-file" value="accounts.xml"></parameter>
 <parameter name="hostname" value="arkonis.example.com"></parameter>
  <test name="Test">
    <classes>
      <class name="com.lc.testChuanCan.testNG05"/>
    </classes>
  </test> <!-- Test -->
</suite> <!-- Suite -->

parameter也可在<test></test>裏面添加參數xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<!--在測試suit裏添加參數;在這裏面添加的參數測試類均可以引用;但在test添加的參數上一級不能夠使用--> <suite name="Suite" parallel="none"> <parameter name="xml-file" value="accounts.xml"></parameter> <parameter name="hostname" value="arkonis.example.com"></parameter> <test name="Test"> <classes> <class name="com.lc.testChuanCan.testNG05"/> </classes> </test> <!-- Test -->
<!-- 在test裏添加參數 testKey--> <test name="test01"> <parameter name="testKey" value="我是test標籤裏面的參數"></parameter> <classes> <class name="com.lc.testChuanCan.testNG6"></class> </classes> </test> </suite> <!-- Suite -->
package com.lc.testChuanCan;

import org.testng.annotations.Test;

public class testNG6 {

  //testKey參數是在test配置的,hostname是在suite裏添加的均可以引用
  @Test(parameters = {"testKey","hostname"})
  public void textNG06_01(String testKey,String hostname) {
      System.out.println("我是testNG05 類的testNG06——01方法,\n我傳遞參數是\ntestKey:"+testKey+"\nhostname:"+hostname);
  }
}

 

傳遞參數註釋也是使用下面方式blog

package com.lc.testChuanCan;

import org.testng.annotations.Parameters;
import org.testng.annotations.Test;

public class testNG6 {

  //方式一
  @Test(parameters = {"testKey","hostname"})
  public void textNG06_01(String testKey,String hostname) {
      System.out.println("我是testNG6 類的testNG06——01方法,\n我傳遞參數是\ntestKey:"+testKey+"\nhostname:"+hostname);
      System.err.println("-----------------------------");
  }
  
//方式二 @Parameters({
"testKey","hostname"}) @Test public void textNG06_02(String testKey,String hostname) { System.out.println("我是testNG6 類的testNG06——02方法,\n我傳遞參數是\ntestKey:"+testKey+"\nhostname:"+hostname); } }

 

 使用testNG.xml傳參存在必定的侷限性:it

例如只能傳輸java的基礎數據類型,若是想傳送其餘的數據類型就不行了例如mapio

因此使用第二種方式傳值 @Parameters annotation傳遞參數

相關文章
相關標籤/搜索