接口自动化:HttpClient + TestNG + Java(一) - 接口测试概述+自动化环境搭建

1.1 接口测试简介

1.1.1 什么是接口测试

开始学习接口自动化测试之前,我们先要来了解什么是接口,以及什么是接口测试。

我们都知道,测试从级别上划分可以分为

  • 组件测试
  • 集成测试
  • 系统测试
  • 验收测试

其中在集成测试这个阶段,一个最主要的测试活动就是接口测试。在组件测试中,我们对单个组件自身的功能性能等指标进行验证,上升到集成测试级别,我们则进一步去验证组件之间的交互和集成。而组件之间的交互,就是通过‘接口’来达成的。所以一定程度上,集成测试和接口测试概念是大幅度重叠的。(就组件集成/接口测试而言,其实还有系统集成测试)

比如在主流的web项目中,前端和后端之间的交互,就要通过接口,也是我们这个系列要应对的主要任务。

1.1.2 为什么要做接口测试

我经常喜欢用一台汽车做为例子来讲述组件,集成和系统测试之间的关系。

比如,现在有一台汽车需要做质量检测,那么我们可以怎么测试?

  • 组件测试 - 测试这台汽车的各个部件(如发动机、底盘、变速箱、制动器、转向系统、轮毂轮胎)
  • 集成测试 - 测试这台汽车各部件之间的联动(变速箱如何控制发动机的运作?转向系统如何对轮毂产生影响?)
  • 系统测试 - 测试这台汽车做为一个整体的功能性能

有一个疑问是,难道我在系统测试这个级别,就不能测试上述例子中的“变速箱如何控制发动机的运作”指标吗?其实一定程度而言是可以的,这也是为什么在过去一段时间内,其实大量的测试人员是被堆积在系统测试级别的。但随着我们的行业越来越发展,测试理念越来越先进,测试人员的技能储备也更加丰富,现在的IT项目中已经越来越重视测试的左移和测试的深度。

接口测试在笔者看来,其最大的好处莫过于如下两点:

1.  可以尽早的让测试介入项目,更早的发现和解决问题。比如在整体系统还未开发完毕时,部分接口其实已经可供测试了。

2.  可以从更底层的角度进行测试,从而弥补系统测试级别容易忽略和难以触发的一些测试。

完备的接口测试可以给项目质量带来远超系统测试的收益,参考测试金字塔理论:

1.1.3 HTTP请求的类别

本系列会主要应对是http类型的接口测试。

我们先通过一个表格来列举出8种http请求的类别定义,具体请求方法的实际应用我们在后续的自动化实例中再进一步探讨。

在实际工作中,最常见的是GET以及POST方法。

1.2 接口自动化工具准备

1.2.1 必备工具

 要搭建http接口测试环境,我们需要以下的东西:

  •  JDK:推荐使用1.8
  • 集成开发环境:这里我们使用eclipse
  • 自动化构建管理:Maven
  • 其他相应的依赖包我们通过maven管理

1.2.2 JDK的安装

JDK的下载安装和环境变量配置网上有大量教程,本文不再赘述。

1.2.3 Eclipse的安装

eclipse的安装也非常简单,本文不再赘述。

1.2.4 Maven的安装

Maven的下载安装和环境变量配置网上有大量教程,本文不再赘述。

以上不再赘述的部分如果遇到问题,欢迎留言我会跟进:)

1.3 接口自动化项目

在eclipse中新建一个maven项目MavenAPIProject,打开项目自带的pom.xml文件,加入以下依赖信息:

   <!-- https://mvnrepository.com/artifact/org.apache.httpcomponents/httpclient -->
    <dependency>
        <groupId>org.apache.httpcomponents</groupId>
        <artifactId>httpclient</artifactId>
        <version>4.5.2</version>
    </dependency>
    <!-- https://mvnrepository.com/artifact/org.apache.httpcomponents/httpcore -->
    <dependency>
        <groupId>org.apache.httpcomponents</groupId>
        <artifactId>httpcore</artifactId>
        <version>4.4.4</version>
    </dependency>
    <!-- https://mvnrepository.com/artifact/org.testng/testng -->
    <dependency>
        <groupId>org.testng</groupId>
        <artifactId>testng</artifactId>
        <version>6.8.8</version>
        <scope>test</scope>
    </dependency>

修改完毕后保存,就可以看到eclipse会在后台开始去自动下载并添加以上所有项目依赖的jar包。

我们现在主要引入的是httpclient、httpcore以及testNG三个依赖包:

  • httpclient是一个高效的、最新的、功能丰富的支持 HTTP 协议的客户端编程工具包,我们用它来创建和管理请求;
  • HttpCore是对HTTP协议的基础封装的一套组件,我们测试接口过程中会用到其中的底层网络方法;
  • testNG是一套单元测试框架,为我们提供测试入口和测试组织。

后续如果用到其他依赖包我们再去添加。

下一篇我们就开始写第一个get方法请求的接口自动化测试用例。

原文地址:https://www.cnblogs.com/yingyingja/p/9973960.html

时间: 2024-10-18 14:37:01

接口自动化:HttpClient + TestNG + Java(一) - 接口测试概述+自动化环境搭建的相关文章

接口自动化:HttpClient + TestNG + Java(二) - 第一个接口测试:get请求

在上一篇中,我们搭建好了HttpClient + TestNG + Java的自动化接口测试环境,这一篇我们就赶紧开始编写我们的第一个接口测试用例. 本篇会对问题解决的思路进行更详尽的阐述. 2.1 确定被测接口 首先一个现实的问题,我们要有一个待测接口来验证我们自动化方案的可行性. 我们可以选择在自己的本地去部署一套待测接口,当然也可以选择公网上的接口去进行测试,这里我们选择后者. 我选定的是apishop这个站点:https://www.apishop.net/ 这个站点提供非常多,种类齐全

JNI开发(1)——概述、环境搭建、必要知识点

JNI开发(1)--概述.环境搭建.必要知识点 JNI开发(2)--开发流程实战 同学们,笔者作为一名资深老司机,向大家郑重承诺:"文章的最后会有福利发放,请自备纸巾!!!" 以下是整个 "JNI开发"的主题大纲,由于篇幅的限制,本文就简单的介绍一下关于JNI开发的一些准备工作:概念.环境与必要知识. 1. 关于JNI 1.1 概述 来自 维基百科!!! JNI允许用本地代码来解决纯粹用Java编程不能解决的平台相关的特性.也用于改造已存在的其它语言写的应用程序,供

java:Hibernate框架(环境搭建,Hibernate.cfg.xml中属性含义,Hibernate常用API对象,HibernteUitl,对象生命周期图,数据对象的三种状态)

1.环境搭建: 三个准备+7个步骤 准备1:新建项目并添加hibernate依赖的jar文件  准备2:在classpath下(src目录下)新建hibernate的配置文件:hibernate.cfg.xml <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configurati

Java不走弯路教程(1.环境搭建)

1.环境搭建在开始写第一个Java程序之前,我们需要做一些简单的准备工作. 1.1 还记得DOS吗 我们可以通过图形界面来操作我们的电脑.但作为程序员,你首先需要学会用命令行的方式来操作电脑,因为不是所有的电脑都提供图形界面的. Windows环境下可以通过DOS来执行命令. 你只需要记住大概5个命令,即可完成电脑的基本操作. 我们首先启动DOS环境:在文件浏览器的地址栏中输入cmd,回车,如下图所示. 光标左边显示的是当前所在目录. 本教程实例均在C盘下操作,所以如果不是C盘,输入c:回车,切

JAVA WEB快速入门之环境搭建

前言 我是一直致力于:.NET技术栈.WEB前端.架构设计相关的开发与管理工作,但因国内大环境影响及公司技术方向发生转变(由.NET全部转为JAVA),需要熟练掌握JAVA WEB相关的知识,故我也得顺应潮流,” 精通 “ JAVA  ^ v ^,当然.NET CORE也是我同步学习与研究的方向,甚至还有PYTHON,活到老学到老. JAVA我之前也涉猎过一些,也看过一些JAVA代码,但并没有系统的学习及深入的了解JAVA WEB框架及底层原理,我准备借此机会,由基础到入门到熟练,由浅入深的全面

PHP概述与环境搭建

前言 PHP起源于1995年,由Rasmus Lerdorf开发.到现在,PHP已经经历了几十年的时间洗涤,成为全球最受欢迎的脚本语言之一.由于PHP5是一种面向对象的.完全跨平台的新型Web开发语言,所以无论从开发者角度考虑还是从经济角度考虑,都是非常实用的.PHP语言结构简单.易于入门,很多功能只需一个函数即可实现.很多机构都相继推出了用于开发PHP的IDE工具.Zend搜索引擎等新型技术. 概述 什么是PHP PHP(Hypertext Preprocessor,超文本预处理器),是一种服

Bootstrap(1) 概述与环境搭建

视频教程:http://study.163.com/course/courseMain.htm?courseId=1017002 源码和笔记:http://pan.baidu.com/s/1c06RiMW 一.Bootstrap 概述 Bootstrap 是由 Twitter 公司(全球最大的微博)的两名技术工程师研发的一个基于HTML.CSS.JavaScript 的开源框架.该框架代码简洁.视觉优美,可用于快速.简单地构建基于 PC 及移动端设备的 Web 页面需求.Bootstrap 最为

java学习(一) 环境搭建、hello world的demo

本程序媛搞前端的,上班偶有空闲,不妨来学习学习,不然怎么包养小白脸,走上人生巅峰? 说实话,每个语言都相通,有了javascript的基础,并且有了两三年跟java打交道的经验,简单学习下java想必不会特别困难.好了,废话不多说,开搞! 环境的配置 首先我是个小白,对java啥都不懂,就随意从我学的地方开始叙说 jdk 软件开发工具包 java开发的核心 包含java的运行环境,java工具和java基础的类库 jre 运行环境,jvm标准实现及核心类库 JDK=JRE+开发工具集(例如jav

Java基础002 Java9开发环境搭建(Win10平台)

搭建Java9开发环境 本篇文章目标 下载和安装JDK 裸写Java代码.运行代码 下载和安装Eclipse IDE.设置 Eclipse 开发环境.了解主要的 Eclipse 组件和如何使用它们执行 Java 开发.在 Eclipse 中创建新 Java 项目(安装Eclipse需要先下载JavaSDK) 使用Gradle和Maven 下载和安装JDK 下载SDK 按照以下步骤下载并安装 JDK: 浏览 Java SE Downloads 显示最新版 JDK 的下载页面. 同意您想要下载的版本