irabbit 发表于 2011-5-5 07:34:36

帮忙看下我的一个数据驱动测试的例子(selenium)

String excelFile = "TestingData.xls";
String sheet = "Stop Payment";
DataReader dr;

Test Case        Account        From Cheque No        To Cheque No        Low Amount        High Amount        Payee        Reason        Expected Message
test_create_stoppayment        (USD) 81400321 - Checking        1        9999        1        99999999        lance        no comment        Stop sent.


@Test
        public void test_create_stoppayment() throws Exception {

                dr = new DataReader(excelFile, sheet);
                HashMap<String, String> hashMap = new HashMap<String, String>();
                hashMap = dr.getTestingData("test_create_stoppayment");

//我将测试的数据储存在excel文件里,让后用datareader读书来

                stopPayment.selectAccount(hashMap.get("Account"));
                stopPayment.typeChequeFrom(hashMap.get("From Cheque No"));
                stopPayment.typeChequeTo(hashMap.get("To Cheque No"));
                stopPayment.clickCreate();
                stopPayment.clickConfirm();

                assertTrue(stopPayment.isTextPresent(hashMap.get("Expected Message")));

        }

希望指教。
我觉得不好的地方是,每个测试的test case都需要重复的使用datareader读取每个test case的记录,有没有轻松一点的方法呀。

谢谢

robin.von 发表于 2011-5-5 09:01:31

没有用这种方式吗?
@DataProvider(name="invalidchar")

@Test(dataProvider = "invalidchar")

irabbit 发表于 2011-5-6 02:50:17

回复 2# robin.von


    没有,我用的是junit+selenium

robin.von 发表于 2011-5-6 09:50:47

偶上面的方法是TESTNG中的方法,JUNIT不熟悉,帮不上了!

wugecat 发表于 2011-5-6 14:11:26

本帖最后由 wugecat 于 2011-5-6 14:12 编辑

用@BeforeClass,或@Before将重用的放在这里.junit4也支持这样了

irabbit 发表于 2011-5-7 01:20:00

回复 5# wugecat


    这个建议非常受用。

但是有一个地方不是想同的

hashMap = dr.getTestingData("test_create_stoppayment");

我将test case名称也就是方法名称作为一个参数,去取得excel表一列的数据,那这样的如何让它能够通用呢?

谢谢了

wugecat 发表于 2011-5-10 15:20:18

回复 6# irabbit

写一段程序自动生成.java文件,只要遵循一定的规律,可以生成多少行都可以
页: [1]
查看完整版本: 帮忙看下我的一个数据驱动测试的例子(selenium)