RestAssured接口自动化从入门到框架搭建-2-Maven项目创建和Maven依赖和第一个RestAssured接口测试

这一篇来开始进行一个Eclipse项目的创建,我们选择一个Maven项目工程,然后添加RestAssured这个框架和周边相关的框架的依赖,最后大致介绍以下这些依赖组建的作用。

 

在开始之前,这里介绍一下最新(2019年3月以上)的Eclipse不能从Eclipse市场找到,也不能从install software中下载TestNG的这个问题。

1)打开 http://dl.bintray.com/testng-team/testng-eclipse-release/

2)点击底部 zipped 链接

3)点击下载2019年最新的TestNG版本下载 6.14.3.201902250526

4)下载 zip包 到本地,例如桌面 org.testng.eclipse.updatesite.zip

5)利用解压工具,直接解压到 E:\eclipse\dropins , 我Eclipse放在 E:\eclipse

这个工具直接解压很重要,千万要用这个方法。我尝试过解压到桌面,然后复制到dropins文件夹下,不行

6)重新启动Eclipse软件,选一个包,右键 new-others..-TestNG class,说明TestNG安装成功。

 

1.Eclipse上创建一个maven工程

New-project(选择maven工程),选择快速创建

RestAssured接口自动化从入门到框架搭建-2-Maven项目创建和Maven依赖和第一个RestAssured接口测试_第1张图片

填入必要的字段,点击finish

RestAssured接口自动化从入门到框架搭建-2-Maven项目创建和Maven依赖和第一个RestAssured接口测试_第2张图片

必要字段参考我这里的,随便写都可以。

  4.0.0
  com.restassured
  RestAssured
  0.0.1-SNAPSHOT

2.pom.xml 完整内容

以下pom.xml全部内容,每个依赖前面都添加这个下载地址,可以对照maven仓库看看,了解下,具体组件什么功能,也用一句话添加了注释。


  4.0.0
  com.restassured
  RestAssured
  0.0.1-SNAPSHOT
  
  
  	
	
    	io.rest-assured
    	rest-assured
    	4.0.0
    	test
	
	
	
	
	
    	io.rest-assured
    	json-path
    	4.0.0
	
  	
  	
	
	
    	io.rest-assured
    	json-schema-validator
    	4.0.0
	
	
	
	
	
    	io.rest-assured
    	xml-path
    	4.0.0
	
	
	
	
    	org.testng
    	testng
    	6.14.3
    	test
	
	
	
	
	
    	org.hamcrest
    	java-hamcrest
    	2.0.0.0
    	test
	
  
  
  
  
  

 

2.Rest Assured基本功能第一个例子-判断响应状态码

在src/test/java下创建一个demo包,新建一个BasicFeatures.java文件,代码如下。

package demo;

import org.testng.annotations.Test;
import static io.restassured.RestAssured.*;

public class BasicFeatures {
	
	/**
	 * 简单检查响应状态码
	 */
	@Test
	public void testStatusCode() {
		given().
			get("https://www.baidu.com").
		then().
			statusCode(200);
	}
	
}

运行下这个TestNG class, 成功。

 

3.解释下第一个用例中的语法

下面这个代码

        public void testStatusCode() {
		given().
			get("https://www.baidu.com").
		then().
			statusCode(200);
	}

1) given() 是RestAssured类下一个方法,所以官方文档强烈推荐我们使用静态导入语句。这个given()方法是什么作用,我们暂时不去深挖,后面来介绍。

2)get方法,里面参数是url,这个明显看得出来是发送请求用的,至于get是不是对标GET类型,这个问题,我们放下,后面来回答。

3)then() 又是一个方法,其实在given()前面还有一个with()方法,这些我们现在都不去计较什么意思。

4)statusCode(200) 这个方法名称就看得出来,是判断响应状态码是不是等于200.

整个代码的大概意思,我们明白了。现在讨论下这种写法的好处,什么写法,就是一个方法后面利用点串联起来,形成一个句子一样。这种特点,有点像lambda表达语法效果。除了这个,也有一点像groovy这种胶水语言。通过这个例子,我明白了Rest Assured首页的这句话的含义。

Testing and validating REST services in Java is harder than in dynamic languages
 such as Ruby and Groovy. 
REST Assured brings the simplicity of using these languages into the Java domain.

意思就是有了Rest Assured框架,我们可以向groovy ruby这种动态语言一样去写REST 服务的接口测试验证工作。如果还是不能体会这种写法的简洁和代码量,这里我用Java风格来重新写上面的测试用例。

        /**
	 * Java原本风格的写法
	 */
	@Test
	public void testStatusCodeJavaStyle() {
		//1. 创建一个RestAssured对象
		RestAssured ra = new RestAssured();
		//2. 创建一个请求对象
		RequestSpecification rs = ra.given();
		//3. 发送请求,拿到响应对象
		Response res = rs.get("https://www.baidu.com");
		//4. 判断响应状态码是不是200
		assert res.getStatusCode() == 200;
	}

上面四行代码就是纯Java的思维和风格来写的测试用例,对比一下,一个4行代码,一个1行代码就搞定。为什么1行代码能搞定,Rest Assured中使用了Groovy的语法和功能。我们可以在下图找到Rest Assured使用了groovy和httpclient框架

这种更多层的封装,最后我们就可以一行代码写完一个接口的测试用例。

你可能感兴趣的:(RestAssured接口自动化从入门到框架搭建-2-Maven项目创建和Maven依赖和第一个RestAssured接口测试)