<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
  <channel>
    <title>blogbin</title>
    <description>Avatar.Blogbin</description>
    <link>http://blogbin.javaeye.com</link>
    <language>UTF-8</language>
    <copyright>Copyright 2003-2008, JavaEye.com</copyright>
    <docs>http://blogs.law.harvard.edu/tech/rss</docs>
    <generator>JavaEye - 做最棒的软件开发交流社区</generator>
      <item>
        <title>开源的Web应用程序自动测试软件 -- Selenium IDE</title>
        <author>blogbin</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://blogbin.javaeye.com">blogbin</a>&nbsp;
          链接：<a href="http://blogbin.javaeye.com/blog/38305" style="color:red;">http://blogbin.javaeye.com/blog/38305</a>&nbsp;
          发表时间: 2006年12月10日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <font face="Arial">
<p><font face="Arial">Selenium针对不同的目标用户提供三种产品，它们分别是：<br />
Selenium IDE<br />
Selenium Core<br />
Selenium Remote Client</font></p>
<p><font face="Arial">本篇主要介绍的是Selenium IDE<br />
<a href="http://www.openqa.org/selenium-ide/" target="_blank">http://www.openqa.org/selenium-ide/</a></font></p>
<p><font face="Arial">Selenium IDE使用介绍的Demo(Video)<br />
<a href="http://wiki.openqa.org/download/attachments/400/Selenium+IDE.swf?version=1" target="_blank">http://wiki.openqa.org/download/attachments/400/Selenium+IDE.swf?version=1</a></font></p>
<p><font face="Arial">Selenium IDE下载地址(最新版本为0.8.6)<br />
<a href="http://www.openqa.org/selenium-ide/download.action" target="_blank">http://www.openqa.org/selenium-ide/download.action</a></font></p>
<p><font face="Arial">Selenium IDE为可以集成在FireFox浏览器中插件，通过FireFox和IDE插件非常容易录制用户在Web页面上的操作过程，自动形成测试脚本，并允许保存和任意次数回放。自动录制的测试脚本的语法支持HTML，JAVA, C++等多种主流编程语言，并允许用户手动编辑和各种语言之间进行切换。</font></p>
<p><font face="Arial">由于Selenium IDE集成在FireFox浏览器中，安装和卸载都非常简单方便。它支持测试脚本的录制和回放，能够重复运行和单步调试，体现出很好的所见即所得的特性。Selenium IDE降低了自动化测试的门框，可以让测试人员不关心网站具体实现技术的情况下，通过掌握简单的编程语言，也能够编写出测试用例。甚至普通的互联网用户通过Selenium IDE，能够自动在完成网站上的一些操作。比如通过Selenium IDE把登陆MSN Space，添加评论的过程录制下来，然后通过不停的回访来达到灌水的目的。</font></p>
<p><font face="Arial">从使用上来说，Selenium IDE存在以下几点不足；</font></p>
<p><font face="Arial">Selenium IDE仅仅支持运行单个测试用例，无法支持大批量的测试用例。从测试脚本开发和维护的角度出发，成熟网站的自动化测试脚本不应该都记录在单个文件中，这样不利于团队合作和重用。<br />
Selenium IDE仅仅支持HTML格式的测试用例的回放和单步调试，不支持其它主流编程语言。<br />
Selenium IDE仅仅提供FireFox的插件，无法在IE浏览器中录制和回放测试过程。而当今大部分网站都是基于IE进行开发的，对FireFox或者其它浏览器存在一定的兼容性，比如在IE浏览器上显示正常的界面在其它浏览器中显示出现问题。如果Selenium不能提供集成在IE中的插件或者录制和回放的软件工具，这在很大程度上限制Selenium IDE的适用范围，不利于Selenium能够被更多开发人员，甚至普通互联网用户的广泛使用。</font></p>
<p><font face="Arial">总的来说，Selenium IDE降低了自动化测试工具的的使用门槛，非常普通互联网用户完成一些自动化的操作，也适合测试人员进行简单的测试和验证工作。一般不建议用作商业网站的自动化测试的工具。</font></p>
<p><font face="Arial">最后是一个测试在google上输入selenium作为查询条件，验证查询结果存在文本OpenQA: Selenium的测试脚本例子，分别为HTML版本和Java版本</font></p>
<font face="Arial">
<p><br />
&lt;html&gt;<br />
&lt;head&gt;<br />
&lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=UTF-8&quot;&gt;<br />
&lt;title&gt;New Test&lt;/title&gt;<br />
&lt;/head&gt;<br />
&lt;body&gt;<br />
&lt;table cellpadding=&quot;1&quot; cellspacing=&quot;1&quot; border=&quot;1&quot;&gt;<br />
&lt;thead&gt;<br />
&lt;tr&gt;&lt;td rowspan=&quot;1&quot; colspan=&quot;3&quot;&gt;New Test&lt;/td&gt;&lt;/tr&gt;<br />
&lt;/thead&gt;&lt;tbody&gt;<br />
&lt;tr&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;td&gt;open&lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;td&gt;/intl/zh-CN/&lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;td&gt;&lt;/td&gt;<br />
&lt;/tr&gt;<br />
&lt;tr&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;td&gt;type&lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;td&gt;q&lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;td&gt;selenium&lt;/td&gt;<br />
&lt;/tr&gt;<br />
&lt;tr&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;td&gt;clickAndWait&lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;td&gt;btnG&lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;td&gt;&lt;/td&gt;<br />
&lt;/tr&gt;<br />
&lt;tr&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;td&gt;verifyTextPresent&lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;td&gt;OpenQA: Selenium<br />
&lt;br /&gt;&lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;td&gt;&lt;/td&gt;<br />
&lt;/tr&gt;<br />
&lt;/tbody&gt;&lt;/table&gt;<br />
&lt;/body&gt;<br />
&lt;/html&gt;</p>
<p>package com.example.tests;</p>
<p>import com.thoughtworks.selenium.*;<br />
import java.util.regex.Pattern;</p>
<p>public class NewTest extends SeleneseTestCase {</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public void testNew() throws Exception {</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; selenium.open(&quot;/intl/zh-CN/&quot;);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; selenium.type(&quot;q&quot;, &quot;selenium&quot;);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; selenium.click(&quot;btnG&quot;);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; selenium.waitForPageToLoad(&quot;30000&quot;);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; verifyTrue(selenium.isTextPresent(&quot;OpenQA: Selenium&quot;));<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; checkForVerificationErrors();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
}</p>
</font></font>
          <br/>
          <span style="color:red;">
            <a href="http://blogbin.javaeye.com/blog/38305#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Sun, 10 Dec 2006 17:07:56 +0800</pubDate>
        <link>http://blogbin.javaeye.com/blog/38305</link>
        <guid>http://blogbin.javaeye.com/blog/38305</guid>
      </item>
      <item>
        <title>开源的Web应用程序自动测试软件 -- Selenium简介</title>
        <author>blogbin</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://blogbin.javaeye.com">blogbin</a>&nbsp;
          链接：<a href="http://blogbin.javaeye.com/blog/38215" style="color:red;">http://blogbin.javaeye.com/blog/38215</a>&nbsp;
          发表时间: 2006年12月09日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p>&nbsp;</p>
<div><font size="3"><font color="#000000"><span lang="EN-US"><font face="Times New Roman">Selenium</font></span><span style="FONT-FAMILY: 宋体">作为开源的</span><span lang="EN-US"><font face="Times New Roman">Web</font></span><span style="FONT-FAMILY: 宋体">应用程序自动测试软件，能够模拟真实用户的实际操作，非常适合对</span><span lang="EN-US"><font face="Times New Roman">Web</font></span><span style="FONT-FAMILY: 宋体">应用程序进行浏览器兼容性测试和功能接受测试，也可以用作自动化的系统集成测试和回归测试。</span></font></font><span lang="EN-US"><font size="3" color="#000000" face="Times New Roman">&nbsp;</font></span></div>
<p><font size="3"><font color="#000000"><span style="FONT-FAMILY: 宋体">作为模拟真实用户的实际操作的自动化</span><span lang="EN-US"><font face="Times New Roman">Web</font></span><span style="FONT-FAMILY: 宋体">应用程序测试软件，至少需要提供以下功能：<br />
</span></font></font><font size="3"><font color="#000000"><span style="FONT-FAMILY: 宋体">以某种方式对</span><span lang="EN-US"><font face="Times New Roman">Web</font></span><span style="FONT-FAMILY: 宋体">应用程序的元素进行定位，即通过某种方式描述指定的界面元素，比如文本框，下拉框，文本框，等等。</span></font></font></p>
<p><font size="3"><font color="#000000"><span style="FONT-FAMILY: 宋体"></span></font></font><font size="3"><font color="#000000"><span style="FONT-FAMILY: 宋体">对</span><span lang="EN-US"><font face="Times New Roman">Web</font></span><span style="FONT-FAMILY: 宋体">应用程序的页面元素进行验证或者断言，比如验证窗口的标题，</span><span lang="EN-US"><font face="Times New Roman">Web</font></span><span style="FONT-FAMILY: 宋体">页面是否为指定的字符串，文本框的内容是否为期望信息，等等。</span></font></font></p>
<p><span style="FONT-FAMILY: 宋体"><font size="3" color="#000000">模拟真实用户的实际操作，比如模拟键盘输入，鼠标点击，窗口切换，等等。</font></span></p>
<p><span lang="EN-US"><font size="3" color="#000000" face="Times New Roman">&nbsp;</font></span><font size="3"><font color="#000000"><span style="FONT-FAMILY: 宋体">早期的</span><span lang="EN-US"><font face="Times New Roman">Web</font></span><span style="FONT-FAMILY: 宋体">应用程序自动测试软件，采用绝对</span><span lang="EN-US"><font face="Times New Roman">/</font></span><span style="FONT-FAMILY: 宋体">相对坐标对</span><span lang="EN-US"><font face="Times New Roman">Web</font></span><span style="FONT-FAMILY: 宋体">应用程序的元素进行定位。这种定位方式带用很大的局限性，界面的细微调整，甚至客户端的不兼容都会造成测试软件无法正常进行，需要重新更改测试用例。用于</span><span lang="EN-US"><font face="Times New Roman">HTML</font></span><span style="FONT-FAMILY: 宋体">是一种不严格的</span><span lang="EN-US"><font face="Times New Roman">XML</font></span><span style="FONT-FAMILY: 宋体">，随着</span><span lang="EN-US"><font face="Times New Roman">XML</font></span><span style="FONT-FAMILY: 宋体">解析技术的发展，近年来，有些开源的</span><span lang="EN-US"><font face="Times New Roman">Web</font></span><span style="FONT-FAMILY: 宋体">自动测试软件开始对从服务端接受的</span><span lang="EN-US"><font face="Times New Roman">HTML</font></span><span style="FONT-FAMILY: 宋体">内容作为</span><span lang="EN-US"><font face="Times New Roman">XML</font></span><span style="FONT-FAMILY: 宋体">进行解析，通过分析</span><span lang="EN-US"><font face="Times New Roman">HTML</font></span><span style="FONT-FAMILY: 宋体">的内容完成界面元素的定位，验证，断言，甚至模拟用户的真实操作，比如基于</span><span lang="EN-US"><font face="Times New Roman">Java</font></span><span style="FONT-FAMILY: 宋体">实现的</span><span lang="EN-US"><font face="Times New Roman">HtmlUnit</font></span><span style="FONT-FAMILY: 宋体">和</span><span lang="EN-US"><font face="Times New Roman">JWebUnit</font></span><span style="FONT-FAMILY: 宋体">。也有一部分自动化测试工具将编写的</span><span lang="EN-US"><font face="Times New Roman">JavaScript</font></span><span style="FONT-FAMILY: 宋体">（或者从其它语言转换），借助</span><span lang="EN-US"><font face="Times New Roman">JavaScript</font></span><span style="FONT-FAMILY: 宋体">能够操作</span><span lang="EN-US"><font face="Times New Roman">Web</font></span><span style="FONT-FAMILY: 宋体">页面的特性，</span></font></font><font size="3"><font color="#000000"><span style="FONT-FAMILY: 宋体">完成完成界面元素的定位，验证，断言，甚至模拟用户的真实操作，比如基于</span><span lang="EN-US"><font face="Times New Roman">Java</font></span><span style="FONT-FAMILY: 宋体">实现的</span><span lang="EN-US"><font face="Times New Roman">Selenium</font></span><span style="FONT-FAMILY: 宋体">。</span></font></font></p>
<p><span lang="EN-US"><font size="3" color="#000000" face="Times New Roman">&nbsp;</font></span><font size="3"><font color="#000000"><span lang="EN-US"><font face="Times New Roman">Selenium</font></span><span style="FONT-FAMILY: 宋体">通过内置的</span><span lang="EN-US"><font face="Times New Roman">JavaScript</font></span><span style="FONT-FAMILY: 宋体">脚本操作</span><span lang="EN-US"><font face="Times New Roman">Web</font></span><span style="FONT-FAMILY: 宋体">页面，模拟真实用户的实际操作。</span><span lang="EN-US"><font face="Times New Roman">Selenium</font></span><span style="FONT-FAMILY: 宋体">支持多种语言编写测试脚本，包括</span><span lang="EN-US"><font face="Times New Roman">HTML</font></span><span style="FONT-FAMILY: 宋体">，</span><span lang="EN-US"><font face="Times New Roman">JAVA</font></span><span style="FONT-FAMILY: 宋体">，</span><span lang="EN-US"><font face="Times New Roman">C++</font></span><span style="FONT-FAMILY: 宋体">等多种主流编程语言。这些编程语言</span></font></font><font size="3"><font color="#000000"><span style="FONT-FAMILY: 宋体">通过规范的命名自动映射为相应的</span><span lang="EN-US"><font face="Times New Roman">JavaScript</font></span><span style="FONT-FAMILY: 宋体">方法，可以对</span><span lang="EN-US"><font face="Times New Roman">Web</font></span><span style="FONT-FAMILY: 宋体">应用程序进行测试工作。</span></font></font></p>
<p><font size="3"><font color="#000000"><span style="FONT-FAMILY: 宋体"></span></font></font><span lang="EN-US"><font size="3" color="#000000" face="Times New Roman">&nbsp;</font></span><font size="3"><font color="#000000"><span lang="EN-US"><font face="Times New Roman">Selenium</font></span><span style="FONT-FAMILY: 宋体">首先提供多种方式对</span><span lang="EN-US"><font face="Times New Roman">Web</font></span><span style="FONT-FAMILY: 宋体">应用程序的元素进行定位，比如可以根据</span><span lang="EN-US"><font face="Times New Roman">id, name, javaScript</font></span><span style="FONT-FAMILY: 宋体">表达式，</span><span lang="EN-US"><font face="Times New Roman">xpath</font></span><span style="FONT-FAMILY: 宋体">以及</span><span lang="EN-US"><font face="Times New Roman">css</font></span><span style="FONT-FAMILY: 宋体">来定位文本框，，下拉框，文本框。</span></font></font></p>
<p><font size="3"><font color="#000000"><span style="FONT-FAMILY: 宋体"></span></font></font><font size="3"><font color="#000000"><span style="FONT-FAMILY: 宋体">通过验证</span><span lang="EN-US"><font face="Times New Roman">(Verify)</font></span><span style="FONT-FAMILY: 宋体">和断言</span><span lang="EN-US"><font face="Times New Roman">(Assert)</font></span><span style="FONT-FAMILY: 宋体">来比较</span><span lang="EN-US"><font face="Times New Roman">Web</font></span><span style="FONT-FAMILY: 宋体">应用程序的元素内容是否和期望保持一致。</span></font></font></p>
<p><font size="3"><font color="#000000"><span style="FONT-FAMILY: 宋体"></span></font></font><font size="3"><font color="#000000"><span style="FONT-FAMILY: 宋体">以</span><span lang="EN-US"><font face="Times New Roman">Action</font></span><span style="FONT-FAMILY: 宋体">（动作）模拟真实用户的实际操作，比如通过</span><span lang="EN-US"><font face="Times New Roman">click</font></span><span style="FONT-FAMILY: 宋体">，</span><span lang="EN-US"><font face="Times New Roman">type, open</font></span><span style="FONT-FAMILY: 宋体">等命令模拟真实用户的鼠标点击，键盘输入和打开链接等实际操作。</span></font></font></p>
<p><font size="3"><font color="#000000"><span style="FONT-FAMILY: 宋体"></span></font></font>&nbsp;&nbsp;<a href="http://www.openqa.org/selenium/">http://www.openqa.org/selenium/</a></p>
<p>&nbsp;<font color="#000000"><span style="FONT-FAMILY: 宋体"><font size="3"><span style="FONT-FAMILY: 宋体">后续将陆续介绍</span><span lang="EN-US"><font face="Times New Roman">Selenium</font></span><span style="FONT-FAMILY: 宋体">更多的详细信息</span><span lang="EN-US"><font face="Times New Roman">&hellip;</font></span></font></span></font></p>
          <br/>
          <span style="color:red;">
            <a href="http://blogbin.javaeye.com/blog/38215#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Sat, 09 Dec 2006 11:53:06 +0800</pubDate>
        <link>http://blogbin.javaeye.com/blog/38215</link>
        <guid>http://blogbin.javaeye.com/blog/38215</guid>
      </item>
  </channel>
</rss>