Java+Maven+TestNG接口(API)自动化测试一(转)

本文介绍了接口自动化测试的重要性和优势,对比了接口自动化与GUI自动化测试。通过Java、Maven和TestNG实现HTTP接口测试,讲解了HttpClient的基本功能和TestNG测试框架的使用。此外,还分享了在Eclipse中创建Maven项目,引入相关依赖,以及使用Postman进行接口测试的操作步骤。
摘要由CSDN通过智能技术生成

一、概述

随着移动互联网的逐渐普及,越来越多的人在手机中安装和使用 APP,APP的用户体验对于其厂商来说就显得尤为重要。有个常识大家肯定知道:APP 一 般是通过 HTTP/HTTPS 协议的接口来获取所需的数据和相应的业务逻辑,所以接 口测试的重要性越来越凸显。 

由于当前市场竞争的加剧,很多 APP 发版周期变得越来越短,3-4 天就发一 次版也很平常了。这种情况下,自动化测试就体现出其价值和优势来了。相比手工测试,自动化测试快速高效,测试结果可靠可信,不会因不同人员测试而 给出不同的测试结果。 

说起自动化测试,可能很多人首先想到的就是模拟人工测试的 GUI 自动化 测试。但总结本人近些年的测试实践,个人认为接口自动化测试比 GUI 自动化 测试有更大的意义和重要性。 

相比 GUI 自动化测试,接口自动化测试主要有以下三个优势: 

1.构建成本低:只需要根据给出的参数,执行后判断是否与预期结果一致即可;而 GUI 自动化测试则需要安装和配置好较为复杂的测试环境,其学习成本和学习曲线也更高; 

2.稳定性高:接口测试针对的是 API,没有图形界面,不会受到图形界面中元 素变化因素的困扰,所以测试脚本相对比较稳定;而 GUI 自动化测试针对的是图形界面,而这部分变化是较频繁的,这也意味着对应的 GUI 自动化测试脚本经常需要修改以适应新的图形界面;另外,GUI 自动化测试技术本身就比接口自动化技术更为复杂,GUI自动化测试过程中可能会经常出现一些莫名其妙的错误,其实这也很容易理解,接口测试毕竟属于相对底层的测试,复杂性较低,当然出错的概率也低了,来看下著名的测试金字塔大家就更容易理解了;

3.速度快:执行一个接口自动化用例脚本可能不用一秒钟,但执行一个 GUI 自动化用例脚本至少需要 5 秒以上,当用例数量增加时,这种差别将非常明显。

所以多开展接口测试,并且结合现在广为使用的持续集成工具Jenkins实现接口测试的全过程自动化无疑是一个值得探索和尝试的自动化测试实践。

二、HttpClient和TestNG简介

因为本人更熟悉和偏爱Java,所以选用了Java语言作为接口用例脚本编写的语言。虽然现在很多人使用Python语言编写自动化测试脚本,但个人觉得Python语言不如Java语言严谨(Python是弱类型,Java是强类型),出现变量类型错误不容易被发现,当代码量较大时(大于1000行以上),使用Java无疑效率更高(呵呵,欢迎反对的同学来喷)。

    因为选择了Java,所以采用了Apache的开源框架HttpClient作为接口调用的底层框架。

    HTTP 协议是现在 Internet 上使用得最多、最重要的协议了,越来越多的 软件需要通过 HTTP 协议来访问网络资源。虽然在 JDK 的 java net包中已经提供了访问 HTTP 协议的基本功能,但是对于大部分应用程序来说,JDK 库本身提供的功能还不够丰富和灵活。HttpClient 是 Apache Jakarta Common 下的子项目,用来提供高效的、最新的、功能丰富的支持 HTTP 协议的客户端编程工具包,并且它支持 HTTP 协议最新的版本和建议。

HttpClient和浏览器有点像,但却不是浏览器。它是一个HTTP通信库,因此它只提供一个通用浏览器应用程序所期望的功能子集,最根本的区别是HttpClient中没有用户界面。HttpClient只能以编程的方式传输和接受HTTP消息。

      HttpClient的主要功能:

1. 实现了所有 HTTP 的方法(GET、POST、PUT、HEAD、DELETE、HEAD、OPTIONS、CONNECT和PATCH);

2.支持 HTTPS 协议;

3.支持代理服务器(Nginx等);

4.支持自动(跳转)转向.

在测试框架的选择上,果断选择了TestNG,虽然本人JUnit也用过,但确实TestNG的功能比JUnit强大许多。为哈?因为TestNG就是在JUnit的基础上发展起来的啊。

三、在Eclipse中新建一个Maven项目

3.1 必备工具安装

3.1.1 JDK:使用Java编程,JDK必须安装和配置好。建议下载和安装JDK 1.8, 网上有很多相关资料和教程,这里略过。
3.1.2 Eclipse:进行Java编程的IDE(集成开发环境),能大幅度提高工作效率。建议安装最新版本(最新版本应该已经包含了Maven插件,无需在Eclipse中再安装和配置Maven插件)。网上有很多相关资料和教程,这里略过。
3.1.3 Maven:可自动下载Java项目相关的Jar文件,自动打包测试等,是Java编程人员必备神器。建议安装最新版本,网上有很多相关资料和教程,这里略过。
3.2 在 Eclipse中新建一个 Maven 项目
双击Eclipse图标,然后新建一个Maven项目。

在自动生成的pom.xml文件中加入以下片段:

<dependencies>
	<dependency>
		<groupId>org.testng</groupId>
		<artifactId>testng</artifactId>
		<version>7.1.0</version>
	</dependency>
	<dependency>
		<groupId>org.apache.httpcomponents</groupId>
		<artifactId>httpclient</art
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值