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工程),选择快速创建

填入必要的字段,点击finish

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

  <modelVersion>4.0.0</modelVersion>
  <groupId>com.restassured</groupId>
  <artifactId>RestAssured</artifactId>
  <version>0.0.1-SNAPSHOT</version>

2.pom.xml 完整内容

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

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.restassured</groupId>
  <artifactId>RestAssured</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  
  <dependencies>
  	<!-- https://mvnrepository.com/artifact/io.rest-assured/rest-assured -->
	<dependency>
    	<groupId>io.rest-assured</groupId>
    	<artifactId>rest-assured</artifactId>
    	<version>4.0.0</version>
    	<scope>test</scope>
	</dependency>
	
	<!-- use to parse json document -->
	<!-- https://mvnrepository.com/artifact/io.rest-assured/json-path -->
	<dependency>
    	<groupId>io.rest-assured</groupId>
    	<artifactId>json-path</artifactId>
    	<version>4.0.0</version>
	</dependency>
  	
  	<!-- https://mvnrepository.com/artifact/io.rest-assured/json-schema-validator -->
	<!-- validate a json response conforms to a Json schema -->
	<dependency>
    	<groupId>io.rest-assured</groupId>
    	<artifactId>json-schema-validator</artifactId>
    	<version>4.0.0</version>
	</dependency>
	
	<!-- https://mvnrepository.com/artifact/io.rest-assured/xml-path -->
	<!-- use to parse xml document -->
	<dependency>
    	<groupId>io.rest-assured</groupId>
    	<artifactId>xml-path</artifactId>
    	<version>4.0.0</version>
	</dependency>
	
	<!-- https://mvnrepository.com/artifact/org.testng/testng -->
	<dependency>
    	<groupId>org.testng</groupId>
    	<artifactId>testng</artifactId>
    	<version>6.14.3</version>
    	<scope>test</scope>
	</dependency>
	
	<!-- https://mvnrepository.com/artifact/org.hamcrest/java-hamcrest -->
	<!-- match rules in assertion -->
	<dependency>
    	<groupId>org.hamcrest</groupId>
    	<artifactId>java-hamcrest</artifactId>
    	<version>2.0.0.0</version>
    	<scope>test</scope>
	</dependency>
  
  </dependencies>
  
  
  
</project>

 

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框架

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

  • 8
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
TestNG 是一种流行的测试框架,它提供了丰富的功能来进行单元测试、集成测试和端到端测试。TestNG 结合 TestAssured 可以进行接口自动化测试,以下是 TestNG TestAssured 接口自动化测试框架的优点: 1. 简单易用:TestNG TestAssured 框架易于学习和使用。TestNG 的注解可以方便地对测试用例进行分组、依赖、优先级等操作,而 TestAssured 提供了直观的 API,可以轻松地完成接口测试。 2. 支持多种验证方式:TestAssured 提供了多种验证方式,如 body、header、cookie、statusCode、responseTime 等,可以全面地验证接口的正确性。 3. 支持数据驱动:TestNG TestAssured 框架可以通过数据驱动的方式进行接口测试,可以通过 Excel、CSV、JSON 等数据源进行参数化测试,提高了测试效率和覆盖率。 4. 支持并发测试:TestNG TestAssured 框架支持并发测试,可以提高测试效率。可以通过 TestNG 的 parallel 属性来设置并发线程数,也可以通过 TestAssuredRestAssured.config() 方法来设置并发连接数。 5. 集成度高:TestNG TestAssured 框架可以与其他测试工具和框架集成,如 Maven、Jenkins、ExtentReports 等,可以方便地进行持续集成和测试报告生成。 总之,TestNG TestAssured 接口自动化测试框架具有易用性高、多种验证方式、数据驱动、并发测试、集成度高等优点,是进行接口自动化测试的不二选择。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值