自动化测试框架Selenium 入门

1.什么是selenium

selenium是ThoughtWork的一款开源测试框架。

下载selenium2.0lib包,点击http://code.google.com/p/selenium/downloads/list

        这是官方文档:http://seleniumhq.org/docs/

2.为什么选择selenium

自动化测试工具有很多了,QTP作为商业软件功能强大。但是要把QTP整合到已有的测试平台上面非常困难,selenium非常容易的可以整合到已有的测试平台上面去。如果你是一个刚刚不如职场的新人不懂程序代码上手selenium有点困难,selenium需要一定的程序开发能力。为以后的测试平台长远考虑,故选用selenium测试框架。

selenium Java环境基本配置

1.安装java虚拟机JDK1.5版本以上。

2.下载安装火狐浏览器,并安装。

3.下载selenium支持火狐浏览器的IDE,通过这个IDE可以使用selenium语言编写脚本也可录制操作脚本。(不是必须安装IDE)

4.安装MyEclipse开发环境,并配置MyEclipse的环境。

3.selenium的基本使用

1.在Myeclipse建立一个JavaProject项目名称自定义。

2.将下载的selenium-server-standalone-x.xx.x.jar,导入到项目的Reference Libraries中。

3.从IDE中导出的测试脚本加入工程中。

4.在注解@Test中可以编写自动化测试步骤或脚本了。

选择元素

WebElement element = driver.findElement(By.id("passwd-id"));

在输入框中输入内容:

element.sendKeys(“test”);

将输入框清空:

element.clear();

获取输入框的文本内容:

element.getText();

找到下拉选择框的元素:

Select select = new Select(driver.findElement(By.id("select")));  选择对应的选择项:

上传文件的元素操作:

WebElement adFileUpload =driver.findElement(By.id("WAP-upload"));

String filePath = "C:\test\\uploadfile\\media_ads\\test.jpg";

adFileUpload.sendKeys(filePath);

Windows 和 Frames之间的切换

一般来说,登录后建议是先:

driver.switchTo().defaultContent();

切换到某个frame:

driver.switchTo().frame("leftFrame");

从一个frame切换到另一个frame:

driver.switchTo().frame("mainFrame");

切换到某个window:

driver.switchTo().window("windowName");

调用Java Script

Web driver对Java Script的调用是通过JavascriptExecutor来实现的,例如:

JavascriptExecutor js = (JavascriptExecutor) driver;

        js.executeScript("(function(){inventoryGridMgr.setTableFieldValue('"+ inventoryId + "','" + fieldName + "','"

                + value + "');})()");

页面等待

页面的操作比较慢,通常需要等待一段时间,页面元素才出现,但webdriver没有提供现成的方法,需要自己写。

等一段时间再对页面元素进行操作:

    public void waitForPageToLoad(longtime) {

        try {

            Thread.sleep(time);

        } catch (Exceptione) {

        }

    }

在找WebElement的时候等待:

   public WebElementwaitFindElement(By by) {

        returnwaitFindElement(by, Long.parseLong(CommonConstant.GUI_FIND_ELEMENT_TIMEOUT),Long

                .parseLong(CommonConstant.GUI_FIND_ELEMENT_INTERVAL));

    }

 

    public WebElementwaitFindElement(By by, long timeout, long interval) {

        long start = System.currentTimeMillis();

        while (true) {

            try {

                return driver.findElement(by);

            } catch(NoSuchElementException nse) {

                if (System.currentTimeMillis()- start >= timeout) {

                    throw newError("Timeout reached and element[" + by + "]not found");

                } else {

                    try {

                        synchronized(this) {

                           wait(interval);

                        }

                    } catch(InterruptedException e) {

                        e.printStackTrace();

                    }

                }

            }

        }

    }

4.selenium注意点

1.启动浏览器,如果不是默认安装需要指定启动路径 System.setProperty("webdriver.firefox.bin", PrivateDataSource.fireFoxPath);

2.driver在每次结束的时候都需要退出使用driver.quit();可以把driver产生的零时文件删除掉,如果直接关闭浏览器或driver.close();那么零时文件不会被删除,会

一直存在在你的C盘中,非常耗资源。

5.自动化测试策略

目前项目繁多而非产品那样的专业化,如果每一个项目都做自动化测试那么相对的工作量繁重,质量参差不齐无法很好的控制。

自动化测试针对项目应注重以下点进行实施:

1.项目进度督促使用自动化测试核心模块核心流程是否正常。

2.把控自动化测试质量,如果质量不过关还不如不做自动化测试。

3.进行并行开发策略,开发人员根据界面设计进行功能开发,测试人员根据界面设计进行自动化脚本开发。

4.通过jenkins持续集成平台,每次开发人员或测试人员提交代码都会自动去执行一偏测试脚本,把执行中出现的问题暴露出来,让开发人员及时修改。

通过学习使用selenium自动化测试框架,了解到测试不是简单的测试工作,她掺杂了项目管理,需求分析,人际沟通协调等等技能,需要不断的实践增强能力胜任更加严峻的项目工作。自动化测试框架Selenium 入门_第1张图片


你可能感兴趣的:(测试框架selenium入门)