[現在時点:2017/05/12]
Selenium 3.4.0 Java環境でxlsxファイルを読み込む処理について記述します。
#大まかな概要
- xlsxの表のタイトルとタブ名を指定したクラス作成
- 表の列名を変数に割り当て
- 各クラスを呼んで実行
#さっくりと書いていく
xlsxファイルの表のタイトルとタブ名を指定する。
TestSheet.java
import java.util.List;
import net.java.amateras.xlsbeans.annotation.HorizontalRecords;
import net.java.amateras.xlsbeans.annotation.Sheet;
@Sheet(name="test") //タブ名
public class TestSheet {
@HorizontalRecords(tableLabel="一覧表", recordClass=TestData.class) //表のタイトル
public List<TestData> testDataList;
}
表の列名を変数に割り当て
TestData.java
import net.java.amateras.xlsbeans.annotation.Column;
public class TestData {
@Column(columnName="No")
public String no;
@Column(columnName="TestCase")
public String test_case;
}
各クラスを呼んで実行
GetXlsxData.java
@RunWith(Parameterized.class)
public class GetXlsxData{
private TestData testData; //テスト用パラメータ Excelの1レコードに該当
//コンストラクタ
public GetXlsxData(TestData testData){
this.testData = testData;
}
@Parameters
//エクセルからテストケース生成
public static List<TestData[]> data() throws Exception {
// Excelファイルの読み込み
TestSheet sheet = new XLSBeans().load(new FileInputStream("./testCase/selenium_testlist.xlsx"), TestSheet.class, WorkbookFinder.TYPE_XSSF);
// Parametersの設定
List<TestData[]> list = new ArrayList<TestData[]>();
for (TestData testData : sheet.testDataList) {
list.add(new TestData[] { testData });
}
return list; //コンストラクタへ返す:Set(TestData testData)
}
}
かなり端折って書いてます。
@Before, @Rule, @After, @Test等無いので、自分で追加してください。
以上です。