Junit系列二
一、Junit的使用之高级使用(@RunWith注解)
大家有没有想过这样一个问题,当你把测试代码提交给JUnit框架后,框架如何来运行你的代码呢?
答案就是——Runner
在JUnit中有很多个Runner,他们负责调用你的测试代码,每一个Runner都有各自的特殊功能,你要根据需要选择不同的Runner来运行你的测试代码。但这样可能会觉得奇怪,当我们进行测试的时候,并没有明确指定一个Runner,那这是怎么回事呢?
这是因为JUnit中有一个默认Runner,如果没有指定的情况下,那么系统自动使用默认Runner来运行你的代码,所有我们就能运行了。
Runner如何使用呢?
在Junit4.x中是通过使用@RunWith来指定Runner(运行器),@RunWith是用来修饰类的,而不是用来修饰函数的
Runner都有哪些?
Junit中自带的有:
Suite.java : 组件,套装
Parameterized.java :参数
Theories.java :排列组合
1. @RunWith(Suite.class)
Suite类是JUnit自带的,意为套件,顾名思义,就是一套东西。通过它,可以把多个相关的测试类看做一个测试套件一起测试
PS :
在一个项目中,只写一个测试类是不可能的,我们会写出很多很多个测试类。可是这些测试类必须
一个一个的执行,也是比较麻烦的事情。
鉴于此,JUnit为我们提供了打包测试的功能,将所有需要运行的测试类集中起来
(@RunWith(Suite.class)),一次性的运行完毕,大大的方便了我们的测试工作
编码测试
2.@RunWith(Parameterized.class)
2.1).Parameterized类
JUnit自带的,用于使用多个参数组合多次执行同一个测试用例
2.2).Parameterized类使用
方法一
1)类中要有构造函数
2)有一个public static的方法被@Parameters标注,并且该方法只能返回
Iterable类型或数组类型的数据
代码案例
方法二
1) 用Parameter参数来修饰属性。注意:索引从0开始
2) 属性要用public修饰
代码案例
两种方式测试显示结果
3.@RunWith(Theories.class)
3.1) . Theories
提供一组参数的排列组合值作为待测方法的输入参数。同时注意到在使用Theories这个Runner的时候,我们的待测方法可以拥有输入参数,而这在其它的Runner中的测试方法是不行的
代码测试
第一种方式
第二种方式
测试结果
二、Junit的运行原理(浅层次)
总结:
Junit虽然不用直接写main函数,但是其内在本质执行的过程中依旧是有main加载
这一步骤的,我已我们可以放心使用。
三、常见测试工具
1.压力测试的工具
LoadRunner: 是一种预测系统行为和性能的负载测试工具,通过模拟实际用户的操
作行为进行实时性能监测,来帮助测试人员更快的查找和发现问题,但是收费
Apache JMeter:JMeter作为一款广为流传的开源压测产品,最初被设计用于Web应
用测试,如今JMeter可以用于测试静态和动态资源,
例如:
静态文件、Java 小服务程序、CGI 脚本、Java 对象、数据库、FTP服务
器等等,还能对服务器、网络或对象模拟巨大的负载,通过不同压力类别测试它们
的强度和分析整体性能(免费)
2.自动化测试的工具
QTP : 是一种自动测试工具。使用QTP的目的是想用它来执行重复的手动测试
QuickTest(QT): 针对的是GUI应用程序,包括传统的Windows应用程序,
以及现在越来越流行的Web应用
3.抓包工具
Flidder : 是位于客户端和服务器端的HTTP代理,也是目前最常用的http
抓包工具之一 。 它能够记录客户端和服务器之间的所有 HTTP请求,可以针对特
定的HTTP请求,分析请求数据、设置断点、调试web应用、修改请求的数据,甚至
可以修改服务器返回的数据,功能非常强大,是web调试的利器
Charles : Charles又名青花瓷,是Mac端的一款截取与分析网络请求的工
具(windows也可以用),在网络开发中使用其作分析