提升测试效率?有了这些接口测试用例+工具都不是问题

在这里插入图片描述
在日常开发过程中,有人做前端开发,有人负责后端开发。接口的主要作用就是连接前后台。但是,由于前端和后端开发的速度可能不一样,尤其是后端开发好了,但前端还未开发。这种时候我们需要做接口测试吗?

在日常工作中,我们主要测试的都是功能板块,如果你想真正了解接口测试,那么这篇文章或许能给你一定帮助。

1、为什么我们要做接口测试?

在这里插入图片描述

首先,我们先来看看测试金字塔(接口测试是在中间部分,底层是单元测试,最顶端是界面测试)。

提升测试效率?有了这些接口测试用例+工具都不是问题

从三者的面积大小来看,单元测试和接口测试,才是重点,而界面测试真的是太少。这个面积,你可以理解为代码覆盖,也可以理解为测试的工作量。

这里要提出一个观点:现在国内公司越来越重视接口测试了。之前的几年,很多测试资源都放在了界面的测试,今后会逐步放在接口测试功能、性能、自动化和稳定性测试上面。

白盒测试目前还是开发自己测试,有些大公司,注重软件产品质量,也会安排一些有代码能力的测试人员,去辅助和指导开发人员进行单元测试,共同保证软件的质量。

2、什么是接口测试?

这部分内容可以说:前人之述备矣,我就不赘述了。(PS:需要的同学可以回复:接口测试,查看相关文章。)

3、接口的分类

在开始做接口测试之前,有必要了解一下接口的分类。这里的分类,主要是HTTP请求方法分类。下面是我们最常见的GET/POST/PUT/DELETE四种方法。工作中接口用到最多是GET和POST方法。(GET和POST方法的具体区别,大家可以自行翻阅图书查看)

在这里插入图片描述

4、设计接口测试用例

接下来,我们就一起来聊聊进行接口测试的准备工作。有些同学很好奇,接口测试要流程干嘛?不就是拿着接口文档直接利用接口测试工具测试嘛。

其实,如果只是三五个接口,你可以这么做一个临时的接口测试。但是,如果是上百个接口,或者,你们公司的这个项目,第一次做接口测试,那么,我们还是很有必要遵守测试的流程。

1)接口测试的流程

接口测试和功能测试一样,流程也大致遵守V模型,请看下图。

提升测试效率?有了这些接口测试用例+工具都不是问题

一般来说,接口测试左边的每个阶段,每个公司可能都侧重点不同,例如有些公司就没有需求讨论和需求评审这个阶段。不管如何,用例设计,这个是少不了,而且是重点,要花时间的阶段。只有覆盖全面的接口测试用例,才能有比较好的测试接口覆盖率,才会找出更多的接口的Bug。

2)为什么要写接口测试用例

功能测试用例,大家都写过。接口测试用例,很多人没有写过。在写之前,我们来讨论下,为什么要写接口用例。

①理清思路,避免漏测

②提高测试效率

③跟进测试进度

④告诉领导做过

⑤跟进重复性工作

上面五点,结合自己测试实际经验,应该来说是很好理解和认同的。有用例,就有思路,避免漏掉测试点。跟着测试用例走,一方面,可以避免随机测试那种没有目的性的测试,提高测试效率;另一方面,这对领导检查你的工作、同事询问你的进度时有很多便利,也能够提高对接效率。

3)接口用例设计

我们在设计接口用例时,主要可以从这四个方面来考虑:功能,逻辑业务,异常,安全。

①功能:

功能是否正常;功能是否按照接口文档实现;

举例:有些添加到购物车,需要登录才能添加。也就是业务要求不支持游客添加购物车功能,如果设计一个没有登录的用户,然后去测试添加购物车接口,结果接口能添加到购物车,说明功能不正常,不符合需求和接口文档描述。

②逻辑业务:

是否依赖业务;

举例:该接口调用之前,需要调用登录接口,如果不登录也能请求数据,不符合业务规则。

③异常:

参数异常和数据异常;

参数异常:关键字参数,参数为空,多,少参数,错误参数;

数据异常:关键字数据,数据为空,长度不一致,错误数据;

举例:不管数据异常还是参数异常,测试点差不多,一个参数有key和value,key表示参数,value表示数据。

第一,看看参数和数据能不能支持关键字,例如Java中的保留关键字等等;

第二,就是参数和数据都为空,看看是否做了判断;

第三,参数多和少,例如有两个参数的接口,你需要设计一个三个参数的用例,一个只有一个参数的用例。数据那边长度不一致,例如设计很长的字符串是否支持,因为数据库创建表过程都设置好了每个字段的长度。输入错误的参数和数据,例如故意输出单词等等。

④安全测试用例设计:

cookie:有cookie才能获取数据,如果不带cookie还有信息返回,说明有问题

header:正常接口带header信息,删除header看是否能够返回数据。

唯一识别码:app手机识别码,一般是唯一的。

注:安全测试主要从上面三点检查。第三个是唯一识别码,主要是指app上手机的识别码,一般很少用到,除非很严格的接口测试,例如银行app登录,需要指纹,而指纹来源手机,一般有一个手机识别码判断过程。

5、接口测试的工具

目前,市场上有很多支持接口测试的工具。利用工具进行接口测试,能够提供测试效率。例如,加入让你一天完成100个接口测试任务,你觉得你加班能否完成。如果有工具,但是不是所有工具都能够支持你完成这个任务。下面我们就来挑选几个工具,简单介绍一下。

提升测试效率?有了这些接口测试用例+工具都不是问题

1)fiddler

首先,这是一个HTTP协议调试代理工具,说白了就是一个抓http包的工具。web测试和手机测试都能用到这个工具。既然是http协议,这个工具也能支持接口测试。稍后文章,我们会专门介绍fiddler这个工具。

2)postman

这是一款google工程师开发的一个插件,可以安装到chrome浏览器上。支持不同接口测试请求,能够管理测试套件和自动化运行,弱点在于,自动化断言功能不强大。不能和jenkins和代码管理库进行持续集成测试。但是,绝对是一个很好的半手工,半自动化测试工具,我一般在写自动化接口测试用例,会打开postman进行辅助测试和debug。这个工具也会稍后在文章介绍。

3)wireshak

这个是一款计算机上抓包工具,支持抓各种包,TCP,UDP,HTTP都支持。如果做底层网络数据测试,一般都需要用到它。作为接口测试,这个软件有点不友好。因为刷新数据太快,不好定位每个操作对应的接口。所以,我们不会进行过多介绍这个工具。

4)soupUI

这个是一个开源免费、企业版收费的软件。在国外的接口测试,使用非常多。这个工具能够支持接口自动化测试和接口性能测试,也能支持和jenkins做持续集成测试。了解一下就可以,自己可以下载一个社区免费版,做一个demo试试。

5)java代码做接口测试

代码是万能,笔记工具也是代码开发出来的。为什么要用代码做接口自动化测试呢。因为,有些工具功能是有限制,很多公司,需要一些特定的功能,工具不支持,只好用代码进行开发。

一般用Java做自动化测试,主要是利用httpclient.jar这个包,然后利用junit或者testng这样的单元测试工具,进行测试用例的开发,然后在jenkins上创建一个job,进行持续集成测试。

6)Python代码做接口测试

和Java一样,Python中利用一个很好,功能强大的第三方库requests,能够方便都创建接口自动化用例。python下单元测试框架,一般采用unittest。生成测试报告,一般选择HTMLTestRunner.py。同样,可以和jenkins做持续集成测试。

7)LoadRunner

不要以为LR只能做性能测试,loadrunner同样可以做接口自动化和接口压力测试。只是我们很多人,不会利用LR的函数,进行开发接口测试用例。

8)JMeter

JMeter同loadrunner一样,都是以性能测试出名,一般用JMeter也是做接口性能测试。例如java+Jmeter+ant+jenkins做接口性能监听测试。JMeter如何做接口测试,大家可以网上查下。

写在最后:上面说了这么多工具,基本覆盖了接口功能测试,接口自动化测试,接口性能测试。这里提一下,在Python语言下有一个性能测试工具推荐:Locust。自己百度,安装下,很简单的web界面,感觉很不错,作为一个轻量级的协程测试工具。

最后:【可能给予你帮助】

这些资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你

关注我的微信公众号【伤心的辣条】免费获取~

送上一句话:

世界的模样取决于你凝视它的目光,自己的价值取决于你的追求和心态,一切美好的愿望,不在等待中拥有,而是在奋斗中争取。

推荐好文:

包装成1年工作经验的测试工程师,我给他的面试前的建议如下

自动化测试到底要学什么?

为何跳槽不考虑腾讯?聊聊我和鹅厂的一点往事

自动化测试和手动测试哪个更高级?

新手必看:怎么写一个合格的测试用例?

python登录接口测试问题记录与解决 ( 干 货 )

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
第4章 文件系统接口测试 文件系统攻击分为两类:基于介质的攻击和基于文件的攻击 基于介质的攻击 基于介质的攻击目标是模拟存储介质本身-软盘、硬盘、CD-ROM等 攻击1 按容量填满文件系统 按容量填满文件系统会确保你的应用程序很好地处理满磁盘的情况。一旦Canned HEAT模拟了满状态下的磁盘,就应该抓住每个机会试者强制应用程序打开、关闭、读取、入和修改文件。这样能发现访问文件的位置,但是对满状态下的磁盘,软件无法实施检查。 攻击2 强制介质忙或不可用 强制介质忙或不可用会保证与存在问题的存储设备相关的错误条件得到测试。其思想是,当应用程序访问硬驱、软驱或其他外部存储机制时,强制错误返回码标明介质存在的问题。如果开发人员无法对这些条件编适当的错误处理程序,应用程序就会失效。 攻击3毁坏介质 模拟被破坏的存储介质对任务关键的应用程序是有用的,这种应用程序在受损介质下也必须仍然能够运行。这种攻击有助于对开发人员没有编存取文件或文件时的错误处理代码这种情况进行测试。 基于文件的攻击 攻击4 赋给无效文件名 赋给无效文件名用来发现在哪里没有对读取或入文件标识符进行约束。由于名字常受限于操作系统,如果应用程序对名字没有真正的约束,创建有效名字的失败会引发失效。其思想就是试着用很长的,且包含非法字符和字符组合的名字进行命名。 如何进行攻击? 第一组测试是使应用程序进入相当于“另存为...”对话框,并键入操作系统不能接收的名字。 第二组测试是使用操作系统以应用程序可能不接收的有效文件名创建文件。 攻击5 改变文件访问许可 改变文件访问许可会发现难以察觉的隐错,当应用程序使用的文件可在该应用程序控制之外得到处理时才显示出来。该攻击强调创建和修改文件访问许可,然后驱动应用程序访问文件内容。如果用以检查各种许可处理的错误代码丢失或出错,那么应用程序就会失效。 如何进行攻击? 在不同应用程序中打开和关闭同一文件,并试着在某个应用程序中打开在另一个程序中已打开的文件。 攻击6 更改或破坏文件内容 更改和破坏文件内容模拟对文件故意地或偶然地修改。如果在读取文件以前没有编错误代码来检查文件内容,则软件可能会崩溃。可使用Canned HEAT来模拟这些事件,以便测试员能强制文件操作,并密切观察可能的文件失效。 有两种基本方法来实现攻击-手工损坏文件或使用运行期故障植入作为文件进行操作。 文件系统攻击小结 基于介质的攻击 1.看软件是否能处理满状态的存储介质。填满硬驱,然后强制软件执行文件操作(通过打开、移动和保存文件)。 2.看软件是否能有条不紊地处理忙文件系统。一些应用程序没有真正的超时/等待机制,所以当文件系统忙于响应另一个应用程序的请求时就会失效。强制软件执行与后台应用程序相关联的文件操作,这些后台应用程序也在执行文件操作。 3.试图在受损介质上强制软件进行文件操作。在这种场景下,有一些故障的处理代码的应用程序常会失效。 基于文件的攻击 4.对应用程序的数据文件、临时文件和只读文件试图赋给无效文件名,然后强制软件使用这些文件。 5.修改应用程序数据文件的访问许可。用户许可和读--执行-删除许可常被开发人员所忽视。 6.看软件是否能处理文件中损坏的数据。由于大多数数据破坏会导致失败的循环冗余校验,所以Canned HEAT是植入这种故障的理想机制。否则,使用十六进制/文本编辑器来修改文件内容,然后强制软件打开文件或从中读取。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值