zoukankan      html  css  js  c++  java
  • 接口自动化: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是一套单元测试框架,为我们提供测试入口和测试组织。

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

  • 相关阅读:
    windows p12(pfx)个人证书安装过程
    OpenSSL库验证PKCS7签名
    Crypto库实现PKCS7签名与签名验证
    windows 系统中打开一个数字证书所经历的过程
    DBA不可不知的操作系统内核参数
    MySQL大表优化方案
    深入浅出Cache
    Git Stash用法
    Git服务器搭建全过程分步详解
    laravel 5.1 性能优化对比
  • 原文地址:https://www.cnblogs.com/ht22ht22/p/11661421.html
Copyright © 2011-2022 走看看