Java+TestNG+Maven+Jenkins实现接口自动化测试全教程

发表于:2020-4-24 08:37

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:王东    来源:51Testing软件测试网原创

  第一章 概述
  随着移动互联网的逐渐普及,越来越多的人在手机中安装和使用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项目。



版权声明:本文出自《51测试天地》第五十七期。51Testing软件测试网及相关内容提供者拥有51testing.com内容的全部版权,未经明确的书面许可,任何人或单位不得对本网站内容复制、转载或进行镜像,否则将追究法律责任。
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号