Fitnesse简介

Fitnesse简介

Fitnesse是完全集成的独立wiki(wiki指一种超文本系统。这种超文本系统支持面向社群的协作式写作,同时也包括一组支持这种写作的辅助工具)和验收测试框架。我们可以简单的理解为:Fitnesse是一个测试框架,并且是一个可以像编写wiki一样编写TestCase的自动化测试框架。

FitNesse是一个轻量级的、开源的框架,能够帮助开发团队方便的定义验收测试,通过在web页面上简单的输出和预计输出的表格就可实现,并且可以运行这些测试以确定是否通过,Fitnesse可以执行单个TestCase,也可以批量执行TestCases。

FitNesse可以作为一个wiki,FitNesse wiki可以很方便的创建和编辑页面。

FitNesse是一个Web服务器,不用过多的安装配置,很方便使用。它不需要配置,直接在机器上面运行就可以通过浏览器访问。

Fitnesse官网:http://www.fitnesse.org/

Fitnesse的特点

  • 是验收测试 wiki。
  • 是一个易于使用的 wiki web 服务器。
  • 易于安装: 只需下载一个 jar 文件并启动它。
  • 规格说明/需求可以用作测试输入。
  • 支持Java,Python语言。

Fitnesse原理

FitNesse框架包含Wiki,Test system,Fixtures,其中

Wiki:展现具体的Test Case、Test suite、甚至是Test Requirement;

Test system:Fitnesse的执行引擎,包括两个部分:Slim、Fit

Fixtures:真正的测试代码

img

Fitnesse语法链接:

http://www.fitnesse.org/FitNesse.UserGuide.QuickReferenceGuide#GlobalPROPERTIES

快速编写测试用例指南链接:

http://www.fitnesse.org/FitNesse.UserGuide.WritingAcceptanceTests

Fitnesse下载和运行

下载:http://www.fitnesse.org/FitNesseDownload

启动:进入jar包所在目录,终端执行 java -jar fitnesse-standalone.jar -p 10000

注:端口号可随意

打开浏览器输入:http://localhost:10086/

编写测试代码

1.用idea新建Maven项目:FitnesseTest

img

2.关键代码HttpUtil.java

说明:该类主要是http请求类,用于接口调用Get或Post请求。

![](https://tva1.sinaimg.cn/large/0081Kckwgy1gl2e5joimcj302a02dmx2.jpg

img

3.关键代码QueryWeather.java

说明:这是一个查询天气的接口,调用HttpUtil类中的sendGetJin()方法。我们在QueryWeather.java中定义接口请求参数,并设置SET方法,goToResult()方法是整个代码的核心部分,showBody()用于显示接口请求参数,showResult()用于显示接口响应结果,result()是断言,用于校验接口返回结果是否包含预期结果。我们所定义的变量,方法都是用于在Fitnesse页面的显示。

img

4.pom.xml

说明:本pom.xml配置的jar包有冗余,请根据项目实际需要填写。

img

08

Fitnesse编写测试用例

1.在编写用例之前,我们在idea中执行以下命令:

mvn dependency:copy-dependencies

maven项目所依赖的jar包会导出到target/dependency目录中。

2.编写测试用例

浏览器输入:http://localhost:10086/

第一步:点击页面edit

第二步:编写如下信息

!1 Welcome to [[FitNesse][FitNesse.FitNesse]]!



!2 !style_blue['''接口自动化平台''']

!4 Today is !today.

|!3 项目名称|!3 项目描述|
|!4 [[!style_code(!style_darkOrange[查询天气])][.FrontPage.WeatherTest]]|!4 查询天气相关接口|

!note Release ${FITNESSE_VERSION}








!contents -R2 -g -p -f -h
!3 Set Test Env Param
!define TEST_SYSTEM {slim}
!define slim.timeout {3000}
!define slim.port {10000}
!define slim.pool.size {50}
!define slim.host {localhost}
!path G:\fitness\FitnesseTest\target\classes
!path G:\fitness\FitnesseTest\target\dependency\*

说明:倒数第二行表示所要执行的java类

最后一行表示依赖jar包的位置

第三步:点击Save

img

第四步:点击问号

img

!contents -R2 -g -p -f -h

!| QueryWeather |
| #title | Envrionment | Expect | go to result? | show result? |show body?| appid|appsecret|version|cityid|
| 查询天气 | 测试 | "cityid":"101020100" | PASS | | | 83319595|NJRQ5d9y|v9|1|

第五步:点击Save

第六步:点击Tools-Properties

img

第七步:点击Test-Save Properties

img

第八步:点击Test

img

img

源码

https://github.com/zyjin/FitnesseTest

posted @ 2020-11-26 16:18  测开工程师成长之路  阅读(2540)  评论(0编辑  收藏  举报