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是一套单元测试框架,为我们提供测试入口和测试组织。

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

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

  • 相关阅读:
    Building a Space Station POJ
    Networking POJ
    POJ 1251 Jungle Roads
    CodeForces
    CodeForces
    kuangbin专题 专题一 简单搜索 POJ 1426 Find The Multiple
    The Preliminary Contest for ICPC Asia Shenyang 2019 F. Honk's pool
    The Preliminary Contest for ICPC Asia Shenyang 2019 H. Texas hold'em Poker
    The Preliminary Contest for ICPC Asia Xuzhou 2019 E. XKC's basketball team
    robotparser (File Formats) – Python 中文开发手册
  • 原文地址:https://www.cnblogs.com/yingyingja/p/9973960.html
Copyright © 2011-2022 走看看