项目环境:
开发工具:Eclipse3.3+MyEclipse6.0
测试工具:Junit3.8 、Junit4、JMeter2.3、Selenium1.0项目名称:Struts1.2Demo项目结构:
项目介绍:
1.TestServlet.java:一个Servlet,它接受一个名称为userName 的参数,同时在程序执行
过程中,打印出页面传递的参数值。请求地址:/servlet/TestServlet
2.Demo.java:普通的Java类,里面包括一个exec 方法,该方法接受一个字符串作为参
数,同时返回一个String 类型的对象。方法功能:A、如果传递的参数为 null, 则返回一个”null”字符串
B、如果传递的参数为 wcleye,则返回一个” wcleyeJunit” 字符串C、如果前面条件都不成立,则直接返回参数值。3.LoginAction.java、LoginActionForm.java、login.jsp、successful.jsp、error.jsp:这几个文件完
成一个用户注册的功能。
十年磨一剑
E-mail:wcleye@gmail.com
A、用户进入login.jsp页面,输入用户名和两次密码。
B、如果两次密码相同,则页面跳转进和successful.jsp,否则进入error.jsp页面。
Junit3.8 单元测试
描述:使用Junit3.8 测试Demo.java 类中的exec方法,测试包括该方法的三种分支情况。然后使用Junit3.8 Suite 来完成测试套件。
1、新建DemoTest3.java类,代码如下:
十年磨一剑
E-mail:wcleye@gmail.com
2、在这个类中,需要注意:
A、测试用例类必须继承TestCase
B、测试用例的方法名称:test+被测试的方法名(此方法不能有参数)。
C、对于测试过程中只执行一次的初始化操作放到重写父类的setUp()方法中
D、如果测试结束后,需要做一些释放资源的操作,这些代码放到重写父类的tearDown()方法中。ED、测试的方法都以assert开始,Junit提供了很多方法来完成期望值和实际返回值之间的比较。
3、使用Junit3.8的测试套件集中进行单元测试,编写Junit3Suite.java,代码如下:
总结:Junit3.8 使用比较简单,而且它提供的判断返回值和预期值是否相同的方法非常多,关于这些方法可以多做事例测试。还有就是关于Junit中方法抛出异常的处理机制,可以写一些方法测试一下。
十年磨一剑
E-mail:wcleye@gmail.com
Junit4 单元测试
Junit4 使用起来比Junit3 要更简单和方便。如果希望使用Junit4,则JDK必须使用1.5以上的版本。
1、编写一个基于Junit4 的测试用例 Demo4Test.java:
2、这个类中需要注意:
A、不再使用setUp 和 tearDown 这两个方法执行初始化和销毁操作了,改用注释的方式完成,它们分为对应@Before和@After。
B、对方法的命名不再有限制,只需要在执行测试的方法前加上@Test注释。
十年磨一剑
E-mail:wcleye@gmail.com
3、Junit4 测试套件:
总结:Junit4 和 Junit3.8 有很大区别,它不再局限于使用某种固定的命名方式,而是使用注释的方式标识需要执行的测试方法;对于暂进不需要执行测试的方法修改也很方便,只需去掉@Test注释。给开发人员提供了很强的灵活性中。
十年磨一剑
E-mail:wcleye@gmail.com
JMeter性能测试工具
JMeter 是Apache中的一个开源项目,它主要用于对软件系统做压力测试(即:性能测试)。这里使用JMeter2.3.4对TestServlet.java进行压力测试,使用方法如下:1、到Apache 官网 下载JMeter 包,然后解压。解压后的目录结构:
2、进入bin 目录,双击 ApacheJMeter.jar 这个包,出来一个图形界面:
3、在JMeter中添加多个线程,来模拟多用户访问软件系统的操作,这里设置线程数量为
5。
添加方法如:测试计划(右键) --> 添加 ---> 线程组: 设置线程数为:5个;线程间的总时间间隔为:10秒。
十年磨一剑
E-mail:wcleye@gmail.com
4、添加线程访问的HTTP请求地址。
添加方法:线程组(右键) ---> 添加 ---> Sampler ---> HTTP请求在HTTP请求面板中做如下设置:
1、设置服务器名称或IP:由于我的测试环境是本地,所以直接写 localhost2、端口号:我使用Tomcat做WEB容器,端口号默认:80803、协议:http
4、方法:这里指打开指定的路径时,如果有参数时,参数以哪种方式提交5、Connect encoding:设置打开连接时的内容编码6、路径:设置要进行压力测试的模块或项目的地址7、参数:如果提交时需要参数,可以在这里进行设置。
5、给测试后的结果添加一个显示方式,这里使用表格方式显示。
十年磨一剑
E-mail:wcleye@gmail.com
添加方法:线程组(右键) ---> 添加 ---> 监听器 ---> 用表格查看结果
6、到这里,需要用到的子元素都添加完成了,点击:菜单上的 运行 ---> 启动,启动刚才
设置的HTTP请求,运行之后可以从表格中看到执行请求花费的时间。效果图如下:
7、最终完成后,JMeter中的结构图:
十年磨一剑
E-mail:wcleye@gmail.com
Selenium 自动化测试
Selenium主要帮助完成自动化测试的操作。测试人员只需开启Selenium的录入功能,然后把软件中的功能测试一次,Selenium就能记录此次测试人员录入的数据信息;如果后期系统中的某些功能代码发生改变,需要进行重新测试,只需启动Selenium,它会自动完成测试的功能。
Selenium 测试工具分为三部分:
1、selenium-ide-1.0.2.xpi :这是FireFox 浏览器的一个插件,主要用来完成记录用户输入的信息并格式化的功能。
2、selenium-core-1.0.1.zip :这个压缩包中是一个完整的项目,使用它运行生成好的HTML文件格式的测试用例。这种执行方式是基于WEB界面的。
3、selenium-remote-control-1.0.1.rar :这是一个基于远程运行Selenium测试用例的服务器端程序。它可以使用Junit测试用例的方式运行。
对于上面两种界面的运行方式,实际工作中可以任选一种。
1、安装Selenium 测试工具的录入插件。这个插件只能在FireFox上使用。安装成功后,在
FireFox的 “工具“ 菜单中 ,会多一项 Selenium IDE 的选项。2、部署项目到Tomcat中,然后启动Web容器。在Web容器启动后,打开Selenium IDE的
窗口(打开窗口后,就已经打开了录入功能):
3、在FireFox 浏览器中打开需要测试的软件界面,执行功能测试。
十年磨一剑
E-mail:wcleye@gmail.com
打开测试界面:
输入测试数据:
我两次输入的密码一致,所以提示注册成功:
重新切换到Selenium IDE窗口,可以看到它已经停止录入,里面记录了刚才输入的测试数据:
保存录入的信息为一个测试用例。这里使用HTML方式保存,直接点击 文件 ---> Save Test Case ,保存的文件名为:Struts1.2DemoTest.html。
4、到这里,HTML格式的测试用例就做好了,接下来安装运行程序。由于测试用例是
HTML格式,所以必须使用selenium-core-1.0.1.zip 这个包运行。
1、解压selenium-core-1.0.1.zip 这个压缩文件,解压后结构图:
十年磨一剑
E-mail:wcleye@gmail.com
我把解压后的文件拷到 D:\\J2EE\\Selenium_Core 文件夹中,然后在Tomcat的conf\\server.xml中配置虚拟目录(在之前加上下面这个配置):
这时,可以使用http://localhost:8080/Selenium_Core 这个地址去访问Selenium目录:
2、接下来,我们需要把自己的测试用例添加到Selnium中,让它去运行。
在Selenium_Core根目录,新建文件夹 myTest ,这个文件夹存放我自己的测试用例:
3、复制Selenium根目录下的tests文件夹中的TestSuite.html 到myTest文件夹中。然后,打开myTest中的 TestSuite.html,删除第一个表格中的所有行。加上自己的测试用例的链接,更改后的文件如下:
十年磨一剑
E-mail:wcleye@gmail.com
4、启动Web容器,打开浏览器输入Selenium 项目地址,点击页面中的 Selenium TestRunner 链接:
5、进入新的界面,如:
6、修改输入框中的 tests 为 自己定义的文件夹:myTest ,然后点击[ Go ]按钮,出来的界面如下:
7、到现在只剩最后一步啦,点击左边表格中的Struts1.2DemoTest.html 这个链接,中间会出现这个文件解析后的内容。接着点击
这里面的第二个按
钮运行当前选中的测试用例。看到了吧,在页面的下方会快速的把这个测试用例运行一次。
十年磨一剑
E-mail:wcleye@gmail.com
总结:Selenium测试工具,是软件开发中用的很普遍的一种测试工具,它可以帮我们节省很多时间,可以说是软件测试中的必备工具啦。关于通过远程运行Junit的测试用例的方式,等有时间了再加上去吧。^ _ ^
好了,到此总算把这些测试工具大致都介绍了一遍,至于更详细的资料,Google 一下吧。
十年磨一剑
E-mail:wcleye@gmail.com
因篇幅问题不能全部显示,请点此查看更多更全内容