???? 我是二黑,一个快要秃头的测试人
要成为一名合格的测试工程师,接口测试相关的知识和技能,是不可缺少的。如今,我们随便打开一个大公司的JD,上面基本会要求接口测试经验。
那么,接口测试到底要测些什么?
我相信很多小伙伴跟几年前初入测试行业的我一样,对这个概念十分模糊。我的第一份工作,完全没有接触接口测试,我的第二份工作,又是纯接口测试,并且是没有任何UI界面,完全靠数据、任务驱动的后端接口测试工作。
因此,为了避免小伙伴们走弯路浪费时间,我打算做一个接口测试系列,把一些干货分享给大家。
接口
要说接口,它并不陌生,你天天都会接触它。
你的安卓手机,只能用安卓手机的充电线,不能用苹果手机的充电线——这是硬件接口。
你打开测试奇谭的文章,实际上是请求了文章服务器的接口(简单比喻下),服务器将你点击的文章内容返回给你,供你阅读——这是软件接口。
再举个详细例子:
什么是接口?
在美国使用电风扇,电风扇的插头是美标插头,只能插入美标插孔;
在中国使用电风扇,电风扇的插头是中标插头,只能插入中标插孔;
在这个例子中:插孔就是接口。
接口做什么?
它定义了能接收的插头的类型——美标插孔只能接收美标插头,不能接收中标插头。
另一方面,接口作为传输者,会将不同的电流通过对接的方式传给电风扇,以带动电风扇工作。
根据上述例子,我们不难推演出,在软件中的接口和接口的功能。
用户请求了注册接口,服务会做出处理,向数据库中插入一个新用户;
用户请求了注销接口,服务会做出处理,清除掉数据库中的用户数据。
因此, 当面试官问你什么是接口时,你能说自己不知道吗?
明白了什么是接口,那接口测试,自然简单了。
首先,接口测试属于功能测试。你不要觉得接口测试就很高大上,其实,它仍旧摆脱不了点点点的命运。
拿上面的注册 & 注销例子来说,设计测试用例,正常业务的用例跟功能测试没啥差别。
步骤:A用户(未注册),请求注册接口。期望:注册成功
————————
步骤:A用户(已注册),请求注册接口。 期望:注册失败,给出合理提示,或静默登录
————————
步骤:A用户(未注册),请求注销接口。期望:注册失败,给出合理提示
————————
步骤:A用户(已注册),请求注销接口。 期望:注册成功
但是做接口测试,你还得考虑其他场景:
01 入参出参
你是否发现我上面贴图中的一个细节?
插头请求时,说了一句"我需要美标",插孔回应"我是美标接口"。
像不像打仗的暗号——“土豆土豆,呼叫红薯”,“我是红薯,土豆请讲”。
因此,你需要这样设计你的用例,
步骤:A用户(未注册),假扮自己是已注册用户(修改入参),请求注销接口。期望:失败,给出合理提示
————————
步骤:A用户(已注册),请求注销接口,系统告诉A注销失败(修改出参)。期望:给出合理提示
02 接口安全
即,不能像上一个场景,随意让用户修改入参请求,要保障业务和系统的安全、保障数据的正确。
一般来说,使用https请求+验签机制(验证码、sign、时间戳、Token等),可以规避这个问题。
步骤:拿乱写的入参请求注册接口。 期望:失败,给出合理提示
————————
步骤:拿乱写的入参请求注销接口。 期望:失败,给出合理提示
03 请求超时场景
即,请求接口,一直没有拿到接口的结果。
步骤:网络不好的情况,A用户(未注册),请求注册接口。期望:超时,给出合理提示
————————
步骤:网络不好的情况,A用户(已注册),请求注销接口。 期望:超时,给出合理提示
04 后端服务异常场景
即,接口后面的服务无法正常使用。
步骤:数据库无法使用的情况,A用户(未注册),请求注册接口。期望:失败,给出合理提示
————————
步骤:数据库无法使用的情况,A用户(已注册),请求注销接口。 期望:失败,给出合理提示
05 并发场景
类似于性能测试。
步骤:多个用户(未注册),同时请求注册接口。期望:都能成功
————————
步骤:多个用户(已注册),同时请求注销接口。 期望:都能成功
上面的内容,我只是做了一个引子,引导你去考虑这些场景。当然,实际工作中要考虑的,远不止这一些,还有分布式场景下的异步、同步任务问题,幂等问题,接口兼容问题,降级问题等等。
太多了……
但是,你也别害怕,这些场景是根据你实际工作情况来的。
比如,分布式场景下的同步、异步等,在金融领域使用较多,需要对此精通的接口测试工程师,如果你不在这个行业,了解它即可,没必要深究。
接口测试工具
postman:接口测试工具。常用必备!
fiddler:抓包工具。常用必备!
(温馨提示,文末滑动栏有相关文章哦)
mock:模拟出参的工具,有很多实现方案;
jemter:性能测试工具,也可以用来做接口测试;
python:requests库,学python绕不开这家伙;
swagger-ui等一些web工程。
……
一如既往,做个总结
01 接口测试是功能测试的一种,原理差不多,只是测试思维不一样;
02 保证业务正常的情况下,多做些接口异常测试,对你有百利而无一害;
03 接口测试工具,初学者建议掌握postman和fiddler即可。