专栏首页北京宏哥java接口自动化(二) - 接口测试的用例设计

java接口自动化(二) - 接口测试的用例设计

1.简介

  在这篇文章里,我们来学习一下接口测试用例设计,主要是来学习一些用例设计要点。其实说白了,接口用例设计和功能用例设计差不多,照猫画虎即可。不要把它想象的多么高大上,多么的难,其实一样,以前怎么设计,现在就怎么设计,和黑盒测试设计测试用例半斤八两。这里不再赘述,想详细了解的可以看一下Python的接口自动化用例设计。宏哥在这里,换一个角度来说接口测试的用例设计,首先我们看一下接口测试的范围。

2.接口测试范围

2.1功能测试:验证产品逻辑是否正确

  功能测试是我们接口测试时候相当重要的一部分,接口的功能都没实现,后边的异常、性能就更加谈不上了。其实接口测试和在web页面、或者移动端操作那些按钮、输入框是一样的。按钮将绑定的参数通过接口传过去,而输入框是将你输入的参数通过接口传过去。接口测试是在产品还没有开发好按钮和输入框,你手动写参数通过工具或者其他方法传过去,验证是否可以得到期望的。

  下边的这八种接口功能测试的8种方法和web页面的测试用例的设计方法一模一样的,这个都是测试的基础知识,不知道的自己可以单独查询一下各种方法的概念及其的用法。

2.2异常测试

null : 是开发过程中特定指的一个对象为空的端符,就是一个空对象,不指向任何内存地址

" " : 指一个空字符串,代表该对象有值,指向一个空地址

数据类型:例如我们有个年龄的字段要求传的是ini类型的值,我们给它传的是字符串。这就是数据类型异常。8中基本数据类型,我们传一个不符合规定的数据类型。

负载均衡架构:测试某一个后台(Tomcat 4)挂了,挂了之后 Tomcat4的请求会直接返回一个错误(前台1个nginx ,后台多个 Tomcat),测试是否会返回这个错误,能否会使用户访问失败;一段时间后,想让 Tomcat4 重新加入,判断能否重新加入集群中并正确处理所有请求。

冷热备份:冷备份不常见,热备份:前面有4个Tomca,后面有4个Tomca备份,如果Tomca4挂了,判断Tomca4的备份能否顶替之前的,仍然保持4个服务器存活;当Tomca4 正常后,判断能够成为Tomca4的备份。

1.3性能测试(狭义)

负载测试:我发了好多请求,看看能不能正常发出去,再看看服务器端能不能正常处理这些发过来的请求。

稳定性测试:比如我跑服务跑了好长时间,比如24h、一周等,看看能不能将程序压垮等等。

3.自动化接口测试范围

  为什么在这里没有涉及到前边接口测试的环境异常和功能测试。在这里宏哥做了细分,这部分主要是有其他的测试负责的,比如:环境异常测试,一般需要我们协调和运维配合。需要他们把环境部署成和线上一样的架构,以及硬件、内存等等。由于各个公司的资源和重视不一样,但是最差了也得是等比例缩小的一个初始化的模型。这样做的接口测试才有意义。性能测试也可以自动化测试,这个也有专门的测试,当然了,你也可以进行一些简单的测试,如果你是全栈测试,那么这三部分你都精通那最好了。这里宏哥主要介绍的围绕的功能测试和数据异常测试。

4.自动化接口测试用例设计

  这里宏哥通过具体实例说明一下。自动化接口测试原则:你能够把你设计的接口测试用例映射成一张表。因为映射成一张表你才可以更好的方便的操作,并且可以自动加载它。

4.1接口自动化用例设计示例:登录

环境异常测试时需要运维小伙伴配合测试的,此暂时不做描述 以常见的登录界面为例

输入:用户名:邮箱或者手机号码 输入:密码:6-16位的长度,区分大小写,不能用空格

首先,我们先要知道接口测试用例的规则,与功能测试用例不同,不需要描述测试步骤。我们需要描述id(序号)、目标URL、username、password、协议状态码(可写可不写)、程序状态码(开发返回成功的状态码)、返回内容(例如success)、实际结果、执行状态(自定义,例如0:失败。1:成功)。根据如上内容,可以把这个整理成一个表中,如上字段作为表头。按照正常数据和异常数据维护成Excel就可以。

数据异常:null、“”、特殊符号(&、*)

PS:红色框圈住的针对执行SQL时数据截断的情况。

select username,password from user where username = """ 中间的单引号将会截断,抛出异常。

设计用例表头时,将中文转换成英文,方便程序做映射时处理,同时也方便写入代码中。

5.环境异常测试

  前边虽然说需要协调运维的小伙伴配合测试环境异常,但是在这里你可以提前考虑一下,什么事情都要向到前边,未雨绸缪。不要等出事了临时抱佛脚。

5.1简单web架构集群

  上图是一个简单的web部署架构。接口测试主要是前台传递参数,后台接口参数并处理返回期望的结果。简单的描述一下上边的架构:用户通过web页面发送请求到nginx,nginx接收到请求不作任何处理,将请求分发到后台的tomcat1、tomcat2、tomcat3服务器上。服务器处理请求后,将结果返回到web页面,用户看到结果。

这里分发是有规律的,不是一同乱分发,那样还不得有的服务器先得没事干,有的服务器累死了,分发原则:根据userid来进行区分。

例如:取余,当余数为0时,分发到1,当余数为1时,分发到2,到余数为2时,分发到3。

环境异常条件:tomcat2服务器挂掉了,专业点就是宕机了。假如此时有9个用户,他们的userid分别是:1,2,3,4,5,6,7,8,9。此时恰好是1用户把tomcat2给玩挂了。

5.2环境异常测试示例:

  结合上图:宏哥来描述一下,这个环境异常的场景,根据这个场景设计的测试用例。用户1将服务器tomcat2玩挂机了,恰好此时用户1又发出请求,所以此时用户1的请求期望结果只能发送到tomcat1或者tomcat3上。服务器挂机以后运维团队收到告警,快速修复tomcat2服务器(例如重启),当下一次用户4发送请求的时候,由于tomcat2正常所以预期结果还是正常环境了分发到tomcat2上。这里我们主要是观察一下tomcat2是否可以正常加入到集群中。这些策略可以提前和运维的小伙伴定好了进行测试。

5.3如何确定分发到那台服务器

  方法:通过日志查看有没有分发到,例如:用户1分发2上,即使访问成功但是没有日志,那么这就是一个bug,和我们之前定好的均衡策略有冲突。其他的都类似。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • python接口自动化(五)--接口测试用例和接口测试报告模板(详解)

      当今社会在测试领域,接口测试已经越来越多的被提及,被重视,而且现在好多招聘信息要对接口测试提出要求。区别于传统意义上的系统级别测试,很多测试人员在接触到接口...

    北京-宏哥
  • java接口自动化(一) - 接口自动化测试整体认知 - 开山篇(超详解)

      了解什么是接口和为什么要做接口测试。并且知道接口自动化测试应该学习哪些技术以及接口自动化测试的落地过程。其实这些基本上在python接口自动化的文章中已经详...

    北京-宏哥
  • python接口自动化(二)--什么是接口测试、为什么要做接口测试(详解)

      上一篇和大家一起科普扫盲接口后,知道什么是接口,接口类型等,对其有了大致了解之后,我们就回到主题-接口测试。

    北京-宏哥
  • 十年高级程序员从阿里离职,分享这些年的面试经验——offer篇

    时隔两年再一次的面临离职找工作,这一次换工作有些许的不舍,也有些许的无奈。个人所在的技术团队不错,两年时间成长了很多,也很不舍这个团队。但是,由于公司的某些原因...

    用户4447430
  • 有赞前端质量保障体系

    最近一年多一直在做前端的一些测试,从小程序到店铺装修,基本都是纯前端的工作,刚开始从后端测试转为前端测试的时候,对前端东西茫然无感,而且团队内没有人做过纯前端的...

    测试开发社区
  • 云ERP彻底实现尚需时日,看大佬们在忙些什么?

    T客汇官网:tikehui 撰文 | Felix 云端ERP不久之前还是整个ERP中的“丑小鸭",但是如今它却正在蜕变为“白天鹅”的路上,并开始在ERP市场中占...

    人称T客
  • JDBC也就那么回事

      JDBC:Java DataBase Connectivity,是SUN公司提供的一套操作数据库的标准规范(技术)。

    泰斗贤若如
  • Phpstorm通过FTP上传到远程服务器同步开发

    其实大多数时候我们都是在本地开发、测试,等项目基本完成后才会部署到线上服务器,但总有那么一些情况我们需要在线上服务器开发部署测试。比如:开发微信公众号后台等

    无道
  • 6.3.3 异步定时方式

    在异步定时方式中,没有统一的时钟,也没有固定的时间间隔,完全依靠双方相互制约的“握手”信号来实现定时控制。通常,把交换信息的两个部件或设备分为主设备和从设备。主...

    week
  • 混淆矩阵 (confusion matrix)

    在机器学习中,混淆矩阵可以可视化预测的结果情形。即可以方便的看出模型是否将集中不同的类混淆。

    生信编程日常

扫码关注云+社区

领取腾讯云代金券