本篇文章给大家谈谈api接口测试,以及API接口测试方法论对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
今天给各位分享api接口测试的知识,其中也会对API接口测试方法论进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
api接口测试的步骤
1、拿到接口文档的时候先分析文档,分析的内容有:请求类型、必填项、选填项、入参、出参及描述
2、编写测试用例,测试用例的编写参考下图;
3、利用eolinker、jmeter或者其它接口测试工具执行测试用例;
(在接口没有问题的情况下,前端测试出的bug都属于前端开发人员)
5、接口测试完成后再进行前端的功能及UI交互测试;
6、提交buglist清单,修复后一定要回归测试。
具体可以在eolinker在线使用了解: www.eolinker.com

API_接口测试规范
一、接口测试
接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互。测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系等。
二、接口测试的意义
按照分层测试模型,处于中间层的接口测试,在稳定性,效率,成本,技术,实施难度上综合来讲,是收益最大的。相较于传统的UI层次的测试,接口测试把测试提前了(时间上,架构上),并且能够覆盖到一些UI测试无法触及的功能点,提高了测试的覆盖率,对质量控制提升了信心。接口测试也更容易实现自动化持续集成,支持后端快速发版需求,利于CT(持续测试)的开展。
三、认识URL
接口主要分为2大类:
1.webservice接口
webService接口是走soap协议通过http传输,请求报文和返回报文都是xml格式的,我们在测试的时候都用通过工具(例如:soapUI)进行调用,测试。【暂时业务上用不到,不扩展】
2.http 接口
Http协议是建立在TCP协议基础之上的,当浏览器需要从服务器获取网页数据的时候,会发出一次Http请求。Http会通过TCP建立起一个到服务器的连接通道,当本次请求需要的数据完毕后,Http会立即将TCP连接断开,这个过程是很短的。所以Http连接是一种短连接,是一种无状态的连接。
3.URL解析
在WWW上,每一信息资源都有统一的且在网上唯一的地址,该地址就叫URL(Uniform Resource Locator,统一资源定位符),它是WWW的统一资源定位标志,就是指网络地址。HTTP协议工作于客户端-服务端架构之上。浏览器作为HTTP客户端通过URL向HTTP服务端即WEB服务器发送所有请求。Web服务器根据接收到的请求后,向客户端发送响应信息。
URL由三部分组成:资源类型、存放资源的主机域名、资源文件名。
也可认为由4部分组成:协议、主机、端口、路径
URL的一般语法格式为(带方括号[]的为可选项):【参考 URL百度百科 】
protocol :// hostname[:port] / path / [;parameters][?query]#fragment
以下面的URL为例:
http://blog.xx.com.cn/s/blog_537ad6610102xtb1.html?tj=hist
1)、协议部分,代表页面使用的是http协议,在Internet中可以使用多种协议,如HTTP,FTP等等。在"HTTP"后面的“//”为分隔符;
2)、域名部分, blog.xx.com.cn ,也可以使用IP地址作为域名使用如:192.168.55.14:8080,其中8080为端口,域名和端口之间使用“:”作为分隔符。端口不是一个URL必须的部分,如果省略端口部分,将采用默认端口80/tcp;
3)、虚拟目录部分,从域名后的第一个“/”开始到最后一个“/”为止,是虚拟目录部分。虚拟目录也不是一个URL必须的部分。本例中的虚拟目录是“/s/”
4)、文件名部分:从域名后的最后一个“/”开始到“?”为止,是文件名部分,如果没有“?”,则是从域名后的最后一个“/”开始到“#”为止,是文件部分,如果没有“?”和“#”,那么从域名后的最后一个“/”开始到结束,都是文件名部分。本例中的文件名是“blog_537ad6610102xtb1.html”。文件名部分也不是一个URL必须的部分,如果省略该部分,则使用默认的文件名
5)、锚部分:从“#”开始到最后,都是锚部分。锚部分也不是一个URL必须的部分(可以理解为定位)
6)、参数部分:从“?”开始到“#”为止之间的部分为参数部分,又称搜索部分、查询部分。本例中的参数部分为“7.参数部分:从“?”开始到“#”为止之间的部分为参数部分,又称搜索部分、查询部分。本例中的参数部分为“boardID=5ID=24618page=1”。参数可以允许有多个参数,参数与参数之间用“”作为分隔符。”。参数可以允许有多个参数,参数与参数之间用“”作为分隔符。
四、测试范围及用例设计思路
接口测试范围分为以下5个方向:
五、测试流程
分析接口文档和需求文档(接口说明、请求方式、请求URL、请求参数、返回数据、返回实例)
接口用例设计
编写接口测试用例
接口测试执行
输出接口测试报告。
六、如何快速评估自己的测试用例覆盖率:
1)参数验证是否完整(包括各种边界和业务规则)
2)业务需求点覆盖是否完整(单接口业务功,依赖接口业务功能)
3)接口异常场景覆盖是否完整(数据的异常)
八、接口测试用途
回归测试
非功能性测试
增量开发,持续集成的项目。
api测试和接口测试有何不同?
API测试又称为接口测试api接口测试,接口测试是功能测试的一种。
API(Application Programming Interface,应用程序编程接口)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。
API函数包含在Windows系统目录下的动态连接库文件中。Windows API是一套用来控制Windows的各个部件的外观和行为的预先定义的Windows函数。用户的每个动作都会引发一个或几个函数的运行以告诉Windows发生api接口测试了什么。这在某种程度上很像Windows的天然代码。而其他的语言只是提供一种能自动而且更容易的访问API的方法。
什么是API测试
随着API在软件平台提供商中日益流行,为了确保应用程序之间能够正常通信,用户需要对API进行测试。虽然API测试的格式看起来像webhttp调用,但是执行的测试类型类似于其他应用程序的测试类型。
API是一个应用程序调用另一个应用程序服务的一种方式。API可以提供企业软件调用之外的功能。例如天气、运动成绩、股市行情和许多其他类型的数据,都可以通过商业API获取。
API通常使用代表性的状态传输(REST)接口。这使HTTP调用能够访问通用资源标识符(通常称为URI),该标识符执行对服务的调用。
要测试API,需要传入合法范围内和超过范围数据,并观察是否达到预期的结果,超出范围的输入是否提供有用的错误消息并返回失败。
许多平台都是基于web的,或者在云中,所以测试API以考虑网络、地理位置和域名系统。发送来自世界各地不同地点的流量,以确保不同地理区域的访问保持一致。
自动化测试API,特别是当该API是一个需要保证可用性和响应时间指标的商业服务时。通过调用接口和计时来测试API性能。
API监控将实时显示API是否适合健康。如果API在某些时候使用率很高,那么需要实时监控API的稳定性。
演示使用Eolinker,是一款适用于多种规模团队,能满足不同需求的的Saas工具。
使用地址: www.eolinker.com =
api 接口 fuzz 测试初探
在日常测试工作中,经常会有api接口的测试,除了正向流程的测试之外,我们经常还需要覆盖一些异常情况。
例如:
事实上,我们组的接口测试demo框架中,在dataprovider中也经常能够看到诸如下面的例子。
此处是看看接口在传入非期望值的时候,能不能够很好的处理类似请求。
除此以外,还有一些和业务场景强相关的值类型,比如网络测试的时候,我们会关心cidr的格式;计费测试的时候,又特别关注数字的类型。
一方面,给每个接口增加类似的异常接口测试相对比较无趣;另一方面,我们作为人,考虑问题,不管是开发还是测试,都难免挂一漏万,有一些边边角角的case没能考虑到。
既然如此,我们能否统一抽象出来一种接口异常测试的框架, 自动 注入各种类型的异常,然后将凡是服务没有捕获的,抛出trace, exception 的,记录下请求的payload,为后续验证覆盖提供支撑。
主要使用了模糊测试技术(fuzz testing, fuzzing)。其核心思想是自动或半自动的生成随机数据输入到一个程序中,并监视程序异常,如崩溃,断言(assertion)失败,以发现可能的程序错误,比如内存泄漏。(摘抄之维基百科)
简单的模糊测试随机输入数据,而更加高效的模糊测试,需要理解对象结构或者协议。通过向数据内容,结构,消息,序列中引入一些异常,来人为的构造聪明的模糊测试。
如果你持续关注文件系统或内核技术,你一定注意过这样一篇文章:Fuzzing filesystem with AFL。Vegard Nossum 和 Quentin Casasnovas 在 2016 年将用户态的 Fuzzing 工具 AFL(American Fuzzing Lop)迁移到内核态,并针对文件系统进行了测试。
结果是相当惊人的。Btrfs,作为 SLES(SUSE Linux Enterprise Server)的默认文件系统,仅在测试中坚持了 5 秒钟就挂了。而 ext4 坚持时间最长,但也仅有 2 个小时而已。( https://zhuanlan.zhihu.com/p/28828826 )
所以基于此,在api接口测试中引入模糊测试理论上也是可行的,而且是有效的。
经过一番调研和搜索之后,发现了以下这个项目在接口fuzz测试中,有比较好的上手体验。
我对 PyJFAPI 稍微进行了一些修改,包括日志记录,以及异常判断的地方,只记录服务器返回500错误的情况等。
首先需要准本一个请求的模板。
这里是一个 post请求,定义了一些请求头和请求体。星号之间的请求json体,为异常注入点。
它会自动分析你的json格式,生成各种 payload。理论上来说,你只需要给它提供一份接口的scheme就行(要是所有接口都可以从Swagger直接导出那就很方便了)。
运行:
返回
我们可以手工请求一下这些导致异常的payload。
实例1:
事实上,我们本来已经对这个cidr参数进行了一些异常值的测试。包括:
等等。可以发现,还是有部分特殊情形没有考虑到。
实例2
我把程序构造的部分异常打印出来,可以看到类型还是很丰富的。
pjfapi.py 脚本本身使用方法很简单。 -h 看下help为命令行参数的基本说明。
本文简要的介绍了fuzz测试技术,以及将其应用到api接口测试中的实现,给出了一个具体的fuzz接口测试例子。它不一定能够完全替代掉人工的接口异常,但是可以作为一个很好的补充。
关于api接口测试和API接口测试方法论的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。
api接口测试的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于API接口测试方法论、api接口测试的信息别忘了在本站进行查找喔。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
暂时没有评论,来抢沙发吧~