51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 1342|回复: 1
打印 上一主题 下一主题

selenium初步使用

[复制链接]
  • TA的每日心情
    奋斗
    2021-8-16 14:04
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    跳转到指定楼层
    1#
    发表于 2018-3-12 16:28:46 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    前两天在一本《程序员》杂志上接触了selenium这个框架,说是可以和Junit整合进行web界面测试,
    将各模块的功能自动的展现个客户,这无疑吸引了我。花了两天的时间研究了一下。
            selenium大致可分为两个版本Selenium Core和SeleniumRC,第一种是以网页的形式编写TestCase,
    而后一种用Junit,并且支持多种语言,个人表较喜欢后一种,可以和ANT整合用于自动化测试。本
    人也是初步使用,学的过程中主要结合API和编写好的用例说明,具体的情况可在问官方网站进行了
    http://www.openqa.org/selenium/
            seleniumRC下载地址:http://selenium-rc.openqa.org/download.jsp运行测试前在DOS命令下
    启动selenium-server.jar(无需放到环境目录下):java -jar selenium-server.jar
    具体测试用例如下:主要用于form表单的提交测试
    1. package org.selenium.test;

    2. import com.thoughtworks.selenium.SeleneseTestCase;

    3. public class TestSelenium extends SeleneseTestCase {

    4.     public void testSelenium() throws Throwable {
    5.         try {
    6.             // 每个测试步骤间隔1秒
    7.             selenium.setSpeed("1000");
    8.             // 打开测试的网页
    9.             selenium.open("http://localhost:8080/TestProject/form/selenium.jsp");
    10.             // 获取标题
    11.             assertEquals("selenium", selenium.getTitle());
    12.             assertTrue(selenium.isElementPresent("xpath=//input[@name='username']"));
    13.             // 向input中type为text的栏位键入信息
    14.             selenium.type("xpath=//input[@name='username']", "chenxu");
    15.             selenium.type("xpath=//input[@name='password']", "password");
    16.             // 选择下拉列表
    17.             selenium.select("xpath=//select[@name='select']", "index=1");
    18.             assertEquals("1", selenium.getSelectedIndex("xpath=//select[@name='select']"));
    19.             assertEquals("chenxu", selenium.getSelectedValue("xpath=//select[@name='select']"));
    20.             // 勾选或去选check/radio
    21.             selenium.check("xpath=//input[@id='check2']");
    22.             //获取name为check栏位的id属性
    23.             selenium.getAttribute("check@id");
    24.             assertTrue(selenium.isChecked("xpath=//input[@id='check2']"));
    25.             selenium.uncheck("xpath=//input[@id='check2']");
    26.             assertFalse(selenium.isChecked("xpath=//input[@id='check2']"));
    27.             assertEquals("chenxu", selenium.getValue("xpath=//select[@name='select']"));
    28.             // 点击提交按钮
    29.             selenium.click("xpath=//input[@type='submit']");
    30.             // 等待页面载入
    31.             selenium.waitForPageToLoad("3000");
    32.             // 获取新页面标题
    33.             assertEquals("success", selenium.getTitle());
    34.             //确保测试中没有错误出现
    35.             checkForVerificationErrors();
    36.         } finally {
    37.             //清空错误信息列表
    38.             clearVerificationErrors();
    39.         }
    40.     }
    41. }
    复制代码
    注:1,这里的ElementLocator使用xpath方式,表达式看上去复杂,其实并不难理解,如"xpath=//
    input[@id='check']"xpath=//是固定模式,input指form表单的input栏位,id自然就是input中的id属性
    了。selenium可以使用多种元素定位方法(ElementLocator)具体方法可查阅API.
            2,这里的测试类继承了SeleneseTestCase,该类继承至Junit的TestCase,其setup()和teardown()方
    法用于初始化和终止selenium服务,同时覆盖了一些断言(assert)方法。

    测试界面代码如下:selenium.jsp
    1. <%@ page language="java" pageEncoding="ISO-8859-1"%>
    2. <%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean"%>
    3. <%@ taglib uri="http://struts.apache.org/tags-html" prefix="html"%>

    4. <html>
    5.     <head>
    6.         <title>selenium</title>
    7.     </head>
    8.     <body>
    9.         <html:form action="/selenium">  
    10.             <table>
    11.                 <tr><td>UserName:</td><td><input type="text" name="username"/>
    12.                 </td></tr>
    13.                 <tr><td>Password:</td><td><input type="password" name="password">
    14.                 </td></tr>
    15.                 <tr><td>Select:</td><td><select name="select">
    16.                     <option value="javaman">javaman</option>
    17.                     <option value="chenxu">chenxu</option>
    18.                 </select></td></tr>
    19.                 <tr><td>Radio:</td><td>
    20.                     man <input type="radio" name="radio" value="man" id="radio1" checked="checked"/>
    21.                     woman <input type="radio" name="radio" value="woman" id="radio2"/>
    22.                 </td></tr>
    23.                 <tr><td>CheckBox:</td><td>
    24.                     javaman<input type="checkbox" name="check" value="javaman" checked="checked" id="check1">
    25.                     chenxu <input type="checkbox" name="check" value="javaman" id="check2">
    26.                 </td></tr>
    27.                 <tr><td><input type="submit" value="submit"/></td></tr>
    28.             </table>
    29.         </html:form>
    30.         <a href="./success.jsp" id="link">link to success page</a>
    31.     </body>
    32. </html>
    复制代码


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

    使用道具 举报

    本版积分规则

    关闭

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

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

    GMT+8, 2024-11-18 05:53 , Processed in 0.061082 second(s), 22 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

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