51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 16450|回复: 29
打印 上一主题 下一主题

selenium - 读取excel进行数据驱动测试

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2010-12-7 07:36:51 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
selenium - 读取excel进行数据驱动测试

已经花了好久了,但是还是找不到一种比较理想的模式来进入excel的数据驱动测试,有没有做过类似项目的大牛指导一下。有比较具体的教程更好了。

万分感谢
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1
回复

使用道具 举报

该用户从未签到

30#
发表于 2014-2-8 15:02:46 | 只看该作者
回复 28# 喜洋洋8902


    同求啊
回复 支持 反对

使用道具 举报

该用户从未签到

29#
发表于 2014-1-22 14:03:52 | 只看该作者
回复 9# heavy200t


    新手,求webDriver+Eclipse+JUnit数据驱动的详细过程。。      
有个例子最好了,比如最简单的用户登录。。哈哈
有相关的资料么?
回复 支持 反对

使用道具 举报

  • TA的每日心情
    奋斗
    2014-10-16 14:16
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    28#
    发表于 2013-10-23 16:54:37 | 只看该作者
    回复 13# panluhai


        能否发我一份关于selenium+Junit Excel处理测试数据的 框架啊?谢谢哦!82550195@163.com
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    27#
    发表于 2012-5-1 10:09:09 | 只看该作者

    真心不错,多谢楼主分享

    真心不错,多谢楼主分享
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    26#
    发表于 2012-4-27 13:02:52 | 只看该作者
    我这里就是用php对其二次开发后实现读取excel脚本,使用数据参数化
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    25#
    发表于 2012-4-24 10:23:26 | 只看该作者
    本帖最后由 kaidong12 于 2012-4-24 10:26 编辑

    12楼 好方法,谢谢分享
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    24#
    发表于 2012-2-8 18:24:04 | 只看该作者
    学习了。。。mark
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    23#
    发表于 2012-2-2 22:36:18 | 只看该作者
    回复 21# ryugun

    当然,对于复杂的检查点,就不能仅仅只依赖selenium了,类似于你说的药检查文件是否存在等,那么这个时候你就需要用到java的其他知识,去封装一个脱离selenium的步骤,不就行了么?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    22#
    发表于 2012-2-2 22:30:28 | 只看该作者
    回复 20# jia8162

    恩,谢谢~

    我个人对java理解其实很肤浅的,仅仅只是在用的阶段,至于性能优化等许多方面可能层次还不够。

    我的意思是:用什么做数据并不重要,各个东西都有他的好处和坏处,我想说的仅仅是数据驱动的思想;我只所以采用excel,主要是我对excel的API相对熟悉

    希望一起进步
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    21#
    发表于 2012-2-2 22:27:16 | 只看该作者
    回复 19# skyhigh1984
    其实你仔细想一下,验证点其实也可以看成是一个测试步骤,所以我们就会结合业务封装一些适合自己的验证点步骤
    举个例子来说:登录成功后,我需要验证是否成功!
    假如登录成功后我们的页面上会出现:您好,XX   
    那么我最基本的检查点就是验证这个字符是否出现就可以了,我就将这个验证的操作也封装成一个简单的测试步骤,在excel中调用即可。

    不知明白我的意思么?
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    2015-4-9 17:10
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    20#
    发表于 2012-2-1 09:17:38 | 只看该作者
    java 读取 excel 有局限性 数据量一大 excel 会有内存溢出问题
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    19#
    发表于 2012-1-17 11:23:49 | 只看该作者
    回复 18# ryugun

    Hi~ 看了你的思路很受启发。想请教个问题。
    操作步骤可以再excel中添加,但是中间步骤的观察点(或期望结果)能不能也通过excel来指定呢?
    这些观察点有可能是多种形式(页面元素、数据库、文件状态等)。请问你们的观察点在excel里面是如何指定的?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    18#
    发表于 2011-12-21 10:35:32 | 只看该作者
    用什么外部文件(excel、xml、数据库等等)在思想上都是一样的(数据驱动),只是看个人项目不同选择不同的的数据形式而已,个人觉得无所谓好坏,只要方便个人项目的使用就是好的

    我们目前的项目 是这样做的
    selenium + testNG + Spring 结合的基于关键字驱动的框架。数据存放采用的是xecel(个人对excel API相对熟悉)

    1 在selenium上封装一些适合我们项目用的不含测试逻辑的基本步骤(例如, 输入,打开页面,上传 等操作),且这些步骤分别对应一个关键字
    2 将测试数据与逻辑 写在excel文档里(一张excel表示一个测试套,一个sheet代表一个用例,一行数据代表一个测试步骤和它对应的参数,一列数据代表测试逻辑)
    3 写一个关键字解析器,解析excel里的关键字,动态调用测试步骤,完成测试
    4 利用testNG运行,生成测试报告
    5 对于页面元素的locator经常更改,维护起来很困难,因此我们就单独把locator做成xml文件保存,在excel里调用xml文件代号,在解析excel的时候,利用testNG 配合 spring依赖注入,将需要的locator解析出来供用例调用。
    如果页面元素有更改,那么我就只需要维护xml文件即可

    目前我们是这么做的,这个是我个人写的小框架  希望大家给点意见 一起进步
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    17#
    发表于 2011-12-1 15:25:01 | 只看该作者
    数据库方便共享,本地文件用起来不能互相同步,我觉得还是推荐到库里读表的办法。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    16#
    发表于 2011-12-1 11:05:13 | 只看该作者
    不都是一样的嘛,形式上不同而已
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    2015-4-9 17:10
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    15#
    发表于 2011-7-26 14:11:51 | 只看该作者
    数据库比较方便
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    14#
     楼主| 发表于 2011-7-26 04:42:18 | 只看该作者
    我们的鹰眼项目自动化框架就是利用Excel参数化+Selenium
    panluhai 发表于 2011-4-18 14:11



        能够具体一点吗?请问你们是如何执行的
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    13#
    发表于 2011-4-18 14:11:05 | 只看该作者
    我们的鹰眼项目自动化框架就是利用Excel参数化+Selenium
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    12#
    发表于 2011-2-14 09:45:24 | 只看该作者
    本帖最后由 robin.von 于 2011-2-14 09:46 编辑

    回复 11# irabbit

    TestNG自身支持数据驱动的,我用了OpenCSV这个开源控件,加了一个读取CSV转成TestNG支持的格式的方法,这个方法的源代码如下:

    1. public static Object[][] getFromCSV(String filename) {
    2.   if (!(new File(filename)).exists()){
    3.    return null;
    4.   }
    5.   Object[][] content;
    6.   CSVReader reader;
    7.   try {
    8.    reader = new CSVReader(new FileReader(filename));
    9.    Vector<String[]> vec = new Vector<String[]>();
    10.    String[] nextLine;
    11.    reader.readNext(); //skip title
    12.    while ((nextLine = reader.readNext()) != null) {   
    13.     vec.add(nextLine);   
    14.    }
    15.    content = new Object[vec.size()][];
    16.    for (int i = 0; i < vec.size(); i++){
    17.     content[i] = vec.get(i);
    18.    }
    19.    return content;
    20.   } catch (Exception e) {
    21.    System.out.println("Read CSV File:" + filename + "failed.");
    22.    e.printStackTrace();   
    23.   }
    24.   return null;
    25. }
    复制代码


    要用到数据驱动的地方,用下面的方法就可以了:

    1. @DataProvider(name="myInput")
    2. public Object[][] inputData(){
    3.   return CSVUtil.getFromCSV(StaticConstant.getProperty("inputfile"));
    4. }
    复制代码


    这样处理以后,所有的输入数据就放在CSV文件中,一行代表一个输入就可以了。
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-11-13 10:28 , Processed in 0.103789 second(s), 28 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表