Junit的基础讲解二

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)),一次性的运行完毕,大大的方便了我们的测试工作

编码测试

Junit的基础讲解二_第1张图片
Junit的基础讲解二_第2张图片
Junit的基础讲解二_第3张图片
Junit的基础讲解二_第4张图片

2.@RunWith(Parameterized.class)

2.1).Parameterized类

JUnit自带的,用于使用多个参数组合多次执行同一个测试用例

2.2).Parameterized类使用

方法一
  1)类中要有构造函数
  
  2)有一个public static的方法被@Parameters标注,并且该方法只能返回
  Iterable类型或数组类型的数据

代码案例

Junit的基础讲解二_第5张图片

方法二

	1) 用Parameter参数来修饰属性。注意:索引从0开始
	
    2) 属性要用public修饰

代码案例

Junit的基础讲解二_第6张图片

两种方式测试显示结果

Junit的基础讲解二_第7张图片

3.@RunWith(Theories.class)

3.1) . Theories

提供一组参数的排列组合值作为待测方法的输入参数。同时注意到在使用Theories这个Runner的时候,我们的待测方法可以拥有输入参数,而这在其它的Runner中的测试方法是不行的

代码测试

第一种方式

Junit的基础讲解二_第8张图片

第二种方式

Junit的基础讲解二_第9张图片

测试结果

Junit的基础讲解二_第10张图片

二、Junit的运行原理(浅层次)

Junit的基础讲解二_第11张图片

总结: 
	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也可以用),在网络开发中使用其作分析

你可能感兴趣的:(框架,Junit,java)