如何测试接口

①做接口测试的原因:
接口测试是测试系统组件间接口的一种测试。接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。接口一般采用RESTFUL风格的http调用,在业务测试之前验证接口的正确性,将使得我们在更早的阶段发现问题,提升效率。

②接口的分类
第一种是函数级别的,测试需要对接口的各个参数进行测试,如:
Int MathAdd(int a, int b)。
第二种是对象级别的,开发在使用API接口时,先引入包名,在使用之前声明一个对象,之后可以使用对象提供的方法,而测试时,需要测试的是API的功能及对数据输入的正确性。第二种和第一种的差别是,我们只需关注提供给用户使用的接口就可以了,不用关心接口调用其他函数情况,相对于第一种来说,测试的粒度要大一些,范围小一些。
第三种是http协议的接口,App客户端和后端服务连接,一般采用的都是http协议,客户端通过get和post的方法从后端服务获取数据。第三种相对于第二种来说,粒度更大,我们关注的接口更少,但是这些接口都是核心功能。

③接口测试的目的
验证服务端是否满足他声明提供的功能。
测试接口,尤其是那些与系统相关联的外部接口,测试的重点是要检查数据的交换,传递和控制管理过程,还包括处理的次数。

④接口测试的 方法
接口测试如何做呢?一般已经上线接口都会自动化掉,关于接口自动化,可以使用现成的接口框架;对于正在开发或还未达到上线条件的接口,就需要手工测试。
简单的接口,可以通过fiddler模拟请求,也可以在接口请求发送前或服务器结果返回前加入断点,更改请求内容或返回内容。
对于复杂的接口,或者需要多次定时运行,甚至接口间有先后调用顺序的接口,或者团队成员需要轮换测试不同的接口时,就用Postman。搞一下这个例子。

⑤设计接口测试用例
接口测试用例设计和测试用例设计一样,用例设计的内容应该包括:主要测试功能点、测试环境、测试数据、执行操作以及预期结果。

选择好测试对象。对于一个系统做接口测试选择好的测试对象是接口测试关键, 因为我们不可能测试所有接口。

        可将这些最外层的接口分为两类:
        1). 数据进入系统的接口;
        进入系统的接口实际是我们用例的执行调用的接口。可通过变化参数对这些接口进行调用 ,模拟外部的使用;
        2). 数据流出系统的接口。
流出的接口则是我们用例真正该验证的点。数据从哪里流出,流出时的状态如何 ,此时系统又是什么状态都是我们所应该验证的。

确认完整的测试对象的功能.确认外部接口提供给使用这些接口的外部用户什么样的功能,外部用户真正需要什么样的功能。此两个功能一定要准确详细,用例的设计要严格按照测试对象功能设计才是正确的用例。最后当出发点、对象、功能都确定了,就可以真正设计用例了。

⑥web端的接口测试,分类:
a:服务器接口测试:
是测试浏览器与服务器的接口用户输入的数据是输入到的前端页面上,通过http协议的get与post请求来实现前后端的数据传递。这也可认为是接口测试,调用的登录接口还是查询接口,传参的是用户密码还是搜索关键字。
b:外部接口测试:
这个很典型的例子就是第三方登录,比如你做的新系统免于新用户重新注册的麻烦会提供第三方登录,那用户在登录的时候调用的就是第三方登录的接口,由第三方验证用户名和密码并且返回给当前系统。

⑦web接口测试要点:
1、请求是否正确,默认请求成功是200,如果请求错误也能返回404、500等。
2、检查返回数据的正确性与格式;json是一种非常创建的格式。
3、接口的安全性,一般web都不会暴露在网上任意被调用,需要做一些限制,比如鉴权或认证。
4、接口的性能,web接口同样注重性能,这直接影响用户的使用体验。

原文地址:https://www.cnblogs.com/huiziz/p/10222890.html

时间: 2024-10-02 19:03:13

如何测试接口的相关文章

微信公众号API测试——接口调用频率限制

接口频率限制[1] 公众号调用接口并不是无限制的.为了防止公众号的程序错误而引发微信服务器负载异常,默认情况下,每个公众号调用接口都不能超过一定限制,当超过一定限制时,调用对应接口会收到如下错误返回码: {"errcode":45009,"errmsg":"api freq out of limit"} 各接口调用频率限制如下: 接口 每日限额 获取access_token 2000 自定义菜单创建 1000 自定义菜单查询 10000 自定义菜

[转]微信公众平台(测试接口)开发前的准备工作(转载自walkingmanc的专栏)

本文转自:http://blog.csdn.net/jiangweicpu/article/details/21228949 http://blog.csdn.net/walkingmanc/article/details/21457097第二讲 探秘微信公众号 1.   申请微信公众号 我们要进行微信公众平台的开发,第一步当然是要有公众号了.什么?不知道什么是微信公众号,看来你还要先回炉炼炼了,呵呵.通俗的说,我们微信平台就好像是一个大社会,里面有个体人,也有各种组织机构.你自己使用的普通微信

火狐上的一个post提交工具(主要用于测试接口时候)

添加的过程 安装完后,就可以在下图上,看到一个poster 点击poster就可以看到下图 图中红线圈好的,是必须要填写的 Url是访问路径 Name是参数名称 Value是参数值 需要注意一点的是:如图 切换上面的Tab控件需要点击图中红线圈住的部分,这样才能使的参数添加到url后面传参,丢掉这一部分的话,参数是没有办法传过去的! 火狐上的一个post提交工具(主要用于测试接口时候),布布扣,bubuko.com

安卓自动化业务层测试接口

安卓自动化业务层测试接口 阅读前需知的基本知识: 1. uiautomator 脚本的执行通过shell命令调起执行,向执行的方法传递参数也是通过shell命令 2  调起的执行方法所在类必须要继承UIATestCasel类 3.  调起方法内部,职能通过bundle获取外部传递的参数,而不是通过函数参数的方式传递 抛出问题: 在新的自动化测试框架中,业务层属于API层级,非继承于UIATestCasel类(com.android.uiautomator.testrunner.UiAutomat

tomcat监控脚本(监控进程,测试接口,告警动作为发送邮件)

服务器环境:centos7.2 64位 tomcat8.5.6 tomcat 监控功能共需要两个脚本,如下: initMonitor.sh #!/bin/sh #初始化监控脚本相关变量 export tomcat_name=apache-tomcat-8.5.6 export tomcat_home=/usr/local/apache-tomcat-8.5.6 #测试接口访问地址 export webUrl=127.0.0.1:8080/yanglao/sysUserController/sys

jmeter测试接口-打开很多TCP的连接数TIME_WAIT状态(Linux环境)导致报错的解决方法

一 发现问题: 服务器是Linux系统,用jmeter测试接口,发现打开很多的TCP连接,[[email protected] bin]# ulimit -n 65535用这个命令设置了总的连接数:进行压测的时候,连接数可能达到50000以上,很容易报错:查看各个状态的TCP个数:netstat -an | awk '/^tcp/ {++s[$NF]} END {for(a in s) print a,s[a]}',发现连接状态TIME_WAIT的状态很多,(统计80端口连接数netstat -

tair中对get/get_range接口的理解及为get_range添加命令行测试接口

经过这段时间对淘宝开源K/V缓存系统tair基础接口put/get/get_range等源码的详细剖析后,按自己的理解简单总结下tair中我较关心的get和get_range这两个接口的基本实现流程.由于get_range接口是最新几个版本才加入的功能,因此以前的tair Java客户端及最新版本安装后的命令行测试中都没有加入get_range测试接口,这无疑给需要专门优化get_range接口的我带来了不便,因此本文最后给出了在tair中实现get_range命令行测试的方法和示例. 1 ta

分享个测试接口好工具 Dev Http Client

最近调用wcf的接口,一直在找测试接口的工具,后来发现一个比较好的,google浏览器插件 Dev Http Client. 很好很强大的接口测试工具,自己设置头和参数,并且可以将已测试的记录保存! https://chrome.google.com/webstore/detail/dev-http-client/aejoelaoggembcahagimdiliamlcdmfm 这是安装地址. 效果图,自己去体会吧. 抛砖引玉,有更好的客户端工具或其他工程,大家都说一下哈!!~~

SoapUI测试接口

一.去SoapUI官网https://www.soapui.org/下载安装 二.新建工程测试接口 2.1.新建Project 2.3.新建Suite 2.4.新建Case 2.5.新建Step 2.6.添加测试的url.参数.编码等参数 2.7.运行,接口返回请求

php(curl请求)测试接口案例

请求测试接口,如下: $data = ['mobilephone'=>'123','password'=>'124']; $result = curlrequest($apiUrl,$data); if($result['statusCode'] == 200){ echo json_encode($result); }else{ echo json_encode($result); } curl请求url方法,如下: /** * @param string $url 请求地址 * @para