这是《落叶》文集里第 169 片落叶,希望你能喜欢,不为别的,只为这份坚持。
【背景】
这段时间看了不少同学的学习目标或意愿,接口测试和 Python 这两样东西出现的频率还是挺高的,但大多数人也都是不知道该从和下手,也有的觉得自己的时间和精力不太能够支持同时学习两样东西。
我近期一直在考虑怎么将两者结合起来去学习,就是如何在学接口测试的过程中,也能利用上 Python,这样 Python 的学习也就有实战之处了。
所以特意请教了一下我司有着丰富接口测试经验和自动化经验的测试开发工程师 “大婶N72”,他分别给了我不少入门的介绍和建议,我做了一下整理,用于回答这个问题。
【你问】
学习接口测试的同时如何玩转Python?
【我答】
之前有过一篇文章介绍什么是接口测试,见《【落叶154】《测试路上你问我答》(20)接口测试的是什么和为什么?》,所以今天只是就怎么开始上手学习来说一说我的计划吧。
接口测试:
1、学习接口的理论知识,了解相关的基本概念;
2、从开发那拿到接口文档,了解接口的基本结构:地址、头文件、请求方法、请求参数(入参)、返回参数(出参);
3、针对接口的两个核心,了解接口测试的目的和关注点:
3.1 入参:
(1)参数完整性检查:
通常是用来做入参参数必填项检查的,因为前端往往会做必填项保护和响应提示信息,为了确保服务端也做了必填项保护,我们需要将必填项对应的入参参数值置为空,看服务端是否会返回相应的提示信息和响应状态码;
(2)参数合法性检查:
同上,入参参数值得合法性检查一般也会在前端做保护,但后端往往容易忽视或遗漏,为了确保服务端也做了入参参数值的合法性检查,我们需要设计一些非法的参数值,看服务端是否会抛出相应的异常和响应状态码;
3.2 出参:
(1)参数完整性检查:
检查服务端返回的 JSON 串里包含的参数是否和接口文档里定义的一致,如果不一致或者缺失,都会导致前端出错;
(2)参数合法性检查:
检查服务端返回的 JSON 串里包含的参数的参数值类型是否和接口文档里定义的一致,如果不一致,会导致前端解析出错;
(3)参数逻辑性检查:
这里的逻辑性检查,就是检查服务端返回的 JSON 串里的参数的参数值,与根据入参的值和业务逻辑推演出来的返回值是否一致,来判断该接口的代码处理是否正确;
4、学习针对不同的入参数据类型,设计一系列标准的入参测试值;
5、学习针对不同的业务场景,设计有针对性,非普适性的入参测试值;
Python:
1、根据你接口测试的学习程度,按照自己的实际需求,设计一个能执行你设计好的接口测试用例的工具;
2、从架构设计,到执行结束后的接口测试报告,将该工具分解成若干个功能模块,每个模块再分解成若干个功能点;
3、简单学习了解 Python 的语法,并在电脑上搭建好 Python 的开发环境,按你分解好的功能模块顺序,开始实现,在过程中需要用到什么就去学什么,根据遇到的问题针对性地去学习;
4、及时做回顾和记录,将已经针对性学习过的内容归纳整理,定期对一些常用的知识点做系统化的理论学习;
5、经过系统化的理论学习之后,再对之前已经实现的 code 做 self-review,进行必要的优化;
这个工具可以不用设计的过于复杂和全面,因为目的在于实战学习,但不能不设计,只从 Python 的语法开始学起,那样估计很多人学了前几章就歇工了。
因为只有理论结合实战,开发点东西出来,你才会体会到编程的小小成就感,才能驱使着自己坚持学下去,因为你每天都会看到自己学习的东西在自己的测试中起到了作用。
每天起一点小作用,每天进步一小步,解决一个小问题,一个月、三个月、半年后,你再停下来回头看看,如果没有看得到的收获,你可以来找我。
《测试路上你问我答》里的 Q&A 32,如果是你要的,甚好!如果不是,你问,我答!
作者简介:14 年测试 + 11 年项目管理 + 11 年团队管理 = 一个测试老兵