注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

Fly to the Sky!

很多人因为寂寞而错爱一个人,更多人因为错爱一个人而寂寞一生。

 
 
 

日志

 
 

testng DataProvider的使用小技巧  

2011-01-28 11:15:54|  分类: TESTNG |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
在进行邮件协议的测试过程中,因为有数量巨大的邮件样本要进行测试,如果直接在DataProvider中通过手工输入,添加各个邮件样本测试用例,则需要花费较多的时间,如何能更自动化呢? 这里的接口测试使用的框架是testng,那么就充分利用DataProvider了。

设置DataProvider:
    /**
     * Service 指定路径下的邮件样本
     * @return
     */
    @DataProvider(name="mailsamples")
    public static Object[][] mailsamples() throws Exception{
        List<String> filelist = CommonFunction.getAllFiles(ComTestData.samples_path);
        Object[][] files = new Object[filelist.size()][];
        for(int i=0; i<filelist.size(); i++){
            files[i] = new Object[]{filelist.get(i)};
        }
        return files;
    }

这样在@Test中直接使用该DataProvider即可:
    /**
     * @TestCaseID:
     * @Describe:  测试指定路径下的所有邮件样本
     * @Create 2010.1.27
     * @Modified 2010.1.27
     * @Result: passed
     */
    @Test(dataProvider="mailsamples", dataProviderClass=ComDataProvider.class)
    public void testSendMailSamples(String filedir) throws Exception{
        CommonFunction.mailFrom(sender, in, out);
        CommonFunction.rcptTo(reciever, in, out);
       
        //自定义消息头域名,用于标识邮件的唯一性
        String xMessageId = "test" + new Date().getTime();
        CommonFunction.data(xMessageId, filedir, in, out);
       
        boolean succeed = CompareMail.compareMail(xMessageId, filedir);
        Assert.assertTrue(succeed);
    }

其中getAllFiles(String)是将指定路径下的所有邮件样本读到List中:
    /**
     *     获取指定路径下所有的文件
     * param path 文件夹完整绝对路径
     * @param path
     * @return
     * @throws Exception
     */
    public static List<String> getAllFiles(String path) throws Exception {
        List<String> filelist = new ArrayList<String>();
       
        File file = new File(path);
        if (!file.exists()) {
            throw new Exception(path + " is not exist!!!");
        }
        if (!file.isDirectory()) {
            throw new Exception( path + " is not a directory!!!");
        }
        String[] tempList = file.list();
        File temp = null;
        for (int i = 0; i < tempList.length; i++) {
            if (path.endsWith(File.separator)) {
                temp = new File(path + tempList[i]);
            } else {
                temp = new File(path + File.separator + tempList[i]);
            }
            if (temp.isFile()) {
                filelist.add(path + File.separator + tempList[i]);
            }
            if (temp.isDirectory()) {
                getAllFiles(path + File.separator + tempList[i]);
            }
        }
        return filelist;
    }
  评论这张
 
阅读(7979)| 评论(1)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017