接口测试

一、前言

对于软件测试,有几个大体的发展方向:功能测试赛、接口测试、UI测试、性能测试、安全测试等。但是我认为接口测试是一个很好的测试方向,原因:①前后端分离,接口测试是必须的;②相对其他而言,接口测试性价比更高。我们学习接口测试,需要分几个阶段:①网络基础;②接口功能测试;③接口性能测试;④接口自动化测试;⑤接口安全测试。本节主要介绍接口测试网络基础。

为什么要进行接口测试?

(1)提早介入测试可以大大的降低损失

(2)保证功能接口正常

二、接口

1.接口概述

定义:接口就是API(Application Programming Interface,应用程序接口),是一个软件或服务对外提供的接口,别人只要调用这接口,而内部如何实现,不需要关心。你只要按照要求进行接口调用即可。

外部系统与系统之间以及内部各子系统之间的交互点。包括外部接口、内部接口。

举例:

假设物流中“货物”是数据,存放货物的“总仓库”是数据库,“店铺”是我们的网站、App。页面上显示的内容、数字,以及用户的操作请求和结果都是需要不停搬运的“货物”——数据,则负责调配分配打包的中转站就是API,快递小哥直接从中转站取货就好。

作用:对于软件提供商来说,留出API,让别的应用程序来调用,软件才能发挥最大的价值,才能更有生命力。(同时别人也看不见代码,不伤害商业机密。)

对于应用开发者来说,有了开放的API,就可以直接调用多家公司做好的功能来做自己的应用,不需要所有的事情都自己操刀,节省精力。

2.接口的表现形式

客户端要先操作服务端资源,首先要找到服务端提供的接口,然后才能向服务端发送资源请求,那么何为服务端接口呢?其实就是一个地址(URL),比如:

http://www.qubaobei.com/ios/cf/dish_list.php?stage_id=1&limit=20&page=1

采用的协议(http:):一般来讲网址中第一个“:”前面的就是该网址所采用的协议。这里的HTTP就是个协议 。HTTPS是HTTP的安全版本,HTTPS在HTTP的基础对传输的数据进行了加密和签名,以保证数据传输的安全性。我们平常打开两页的时候会看到网址前面都有一个HTTP或HTTPS,这就是告诉你,你在向服务器发送此请求的过程中要遵循的协议是HTTP或HTTPS (也就是规则)。

服务器地址(//www.qubaobei.com)以双斜杠“//”开头,后面跟的就是这个服务器的地址,专业术语叫域名。

请求资源路径(/ios/cf/dish_list.php) :表示你要请求的资源在该服务器下/ios/cf/dish_list.php的路径下。

参数(?stage_id=1&limit=20&page=1):参数可以找到具体内容,和路径之间使用“?”隔开,参数之间使用“&”隔开。参数是以键值对的形式表现出来的。

把此URLhttp://www.qubaobei.com/ios/cf/dish_list.php?stage_id=1&limit=20&page=1称为食品模块个接口, 也称为接口地址。

三、接口文档展示

接口文档:前端和后端如何进行数据交互的文档

1.封皮

封面最好是本公司规定的封面,有logo,内容标题,版本号,公司名称,文档产生

日期。(错误地方在于,文档的标题要和页眉中的标题一致)

2.修订历史

表格形式较好些。包括:

版本,修订说明,修订日期,修订人,审核时间,审核人。

3.接口信息

接口调用方式,是post方式还是get方式,接口地址,别人需要线上的哪个地址就写哪个。(自己提前测试好线上的这个接口,是否有其他问题,千万别犯低级的错误,尤其是某个字母写错)

4.功能描述

一定要清晰的描述接口功能。(不要遗漏一些细节,比如接口获取的信息不包括哪些,哪些要写明白)

5.接口参数说明

每个参数都要和实际中调用的一样,包括大小写;参数的含义言简意赅的说明;格式是string 还是int 还是long等格式(例如参数为@RequestParam("appKey") StringappKey, @RequestParam("randomId") Integer randomId);说明部分,说明参数值是需要哪个公司提供,并详细说明参数怎么生成的,例如时间戳,是哪个时间段的;参数是否必填,一些参数是必须要有的,有些是可选参数,一定要注意写清晰。

6.返回值说明

(1)有一个模板返回值,并说明每个返回参数的意义。

(2)提供一个真实的调用接口,真实的返回值。

注:现实工作中,对接口有疑问要及时跟同事交流。

四、接口测试的概念

1.概念

测试系统组件间接口的一种测试。接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。

2.接口测试本质

实质就是数据的传输和接受,传输的是接口地址中的参数,接受的是文本字符串,然后对比文本字符串是否正确。

五、接口测试的目的和原理

1.目的

测试接口的正确性和稳定性。

2.原理

接口测试的原理是通过测试程序模拟客户端向服务器发送请求报文,服务器接收请求报文后对相应的报文做出处理然后再把应答报文发送给客户端,客户端接收应答报文这一个过程。

3.接口测试特点

(1)测试可以提前介入测试,符合测试前移的理念,越早发现缺陷,越早修复,损失越小

(2)可以发现一些页面操作发现不了的问题

(3)接口测试低成本高效益

(4)不同于传统的单元测试,接口测试是从用户的角度对系统进行全面的检测

4.接口测试实现方式

(1)使用接口测试工具来实现,比如:JMeter,Postman

(2)通过编写代码来实现,比如:Python+Request

六、常用接口测试工具

1.典型商业工具:

LoadRunner(LR):一款商业性能测试工具,用来做接口测试,很好很强大 ,但是配置比较麻烦。

SoapUI:开源测试工具,通过soap/http来检查、调用、实现Web Service的功能/负载/符合性测试;该工具既可作为一个单独的接口测试工具使用,也可利用插件集成到Eclipse,maven2.X,Netbeans 和intellij中使用。    了解就可以了,基本已经不用了。

2.典型开源工具

Jmeter :一款开源的接口测试工具,操作简单,方便,既有jdbc request操作数据库数据,也有http request和soap request应对测试

3.扩展插件

postman:谷歌浏览器的扩展工具,主要用来做接口测试,谷歌商店中选中安装,界面同poster差别不大,界面简洁。

七、接口测试应该测什么

1.单一接口

单一接口功能的测试主要测试返回的数据结构是否和接口文档给出的一致,接口的正常功能是否完成,接口的参数检查测试,接口的异常测试。

2.组合接口

定义:组合接口测试主要是通过组合多个单一接口,来测试一个业务场景

案例:测试购物网站的一个下单的功能,那么因为在下单之前还有一些流程,所以要测试一个场景。

测试:搜索商品 --> 选中商品 --> 添加进购物车 --> 提交订单 -->支付

(提交订单时还涉及到地址的选取等)

注:涉及到如果使用从cookie或者session在本例中的区别:如果使用cookie加入购物车,那么换一台电脑购物车里的商品就不存在了,但如果使用的是session,购物车里面的东西就一直存在,即:cookie是本机作用的,session不止于本机作用。

3.结构检查

(1)检查返回值的结构是否正确,如是json类型还是xml类型的数据

(2)字段名称是否正确等

XML和JSON都使用结构化方法来标记数据

八、接口测试内容

1.功能逻辑

通过查数据库或缓存等验证数据是否处理正确。

通过其他辅助途径进行验证

2.异常测试

接口测试中主要测试接口正常逻辑,但仅逻辑测试不能保证数据的安全及程序接口在异常情况下的逻辑处理的正确性。

3.路径测试

当被测接口的实现方法中,判断逻辑复杂分支多,且判断中又调用了其他的接口,此时必须要进行路径覆盖测试。

4.其他异常场景

研发的项目,有些项目是底层使用的系统,根据项目特点,可能会存在特殊的异常场景。

例如: 支付的异步操作,支付消息重试等

九、接口测试用例模板

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 211,817评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,329评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,354评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,498评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,600评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,829评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,979评论 3 408
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,722评论 0 266
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,189评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,519评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,654评论 1 340
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,329评论 4 330
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,940评论 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,762评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,993评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,382评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,543评论 2 349

推荐阅读更多精彩内容