文章目录
1)什么是软件接口?
软件接口其实就是指程序中具体负责在不同模块之间传输或接受数据的并做处理的类或者函数。
软件接口的功能
比如一个登录页面:
- 用户发送请求给注册接口,服务会做出处理,向数据库中插入一个新用户的信息。
- 用户请求注销接口,服务会做出处理,清除掉数据库中的用户数据。
比如腾讯发布一个qq登录的接口(一个函数),别人拿到这个函数放到自己的网站代码里面运行,就可以通过这个函数把用户输入的账号密码传给腾讯服务器,服务器校验成功后就能让用户第三方登录QQ了。
2)接口自动化测试
接口测试主要用于检测外部系统与系统之间,以及内部各个子系统之间的交互点。
- 通过测试不同情况下的入参与相应出参信息来判断接口是否满足相应功能性、安全性要求。
- 接口应有请求地址,请求方法,请求参数(入参和出参)。
2.1 测试点范围
以上面的注册&注销例子来设计测试用例:
1、业务功能(正常,异常场景是否实现)
-
正常业务的用例:
正常业务的用例跟功能测试没啥差别。业务规则(覆盖度是否全面)+ 参数验证(边界,业务规则是否达到要求)。- 步骤:A用户(未注册),请求注册接口。期望:注册成功。
- 步骤:A用户(已注册),请求注册接口。 期望:注册失败,给出合理提示,或静默登录。
- 步骤:A用户(未注册),请求注销接口。期望:注册失败,给出合理提示。
- 步骤:A用户(已注册),请求注销接口。 期望:注册成功。
-
异常场景:
异常场景如重复提交、并发提交、事务中断、大数据量测试、请求超时、后端服务异常。- 步骤:A用户(未注册),假扮自己是已注册用户(修改入参),请求注销接口。期望:失败,给出合理提示。
- 步骤:A用户(已注册),请求注销接口,系统告诉A注销失败(修改出参)。期望:给出合理提示。
- 步骤:网络不好的情况,A用户(未注册),请求注册接口。期望:超时,给出合理提示。
- 步骤:网络不好的情况,A用户(已注册),请求注销接口。 期望:超时,给出合理提示。
- 步骤:数据库无法使用的情况,A用户(未注册),请求注册接口。期望:失败,给出合理提示。
- 步骤:数据库无法使用的情况,A用户(已注册),请求注销接口。 期望:失败,给出合理提示。
- 步骤:多个用户(未注册),同时请求注册接口。期望:都能成功。
- 步骤:多个用户(已注册),同时请求注销接口。 期望:都能成功。
2、性能测试(响应时间,吞吐量,并发数,资源要求)
3、安全测试(权限验证,sql注入)
不能随意让用户修改入参请求,要保障业务和系统的安全、保障数据的正确。一般来说,使用https请求+验签机制(验证码、sign、时间戳、Token等)可以规避这个问题。
- 步骤:拿乱写的入参请求注册接口。 期望:失败,给出合理提示。
- 步骤:拿乱写的入参请求注销接口。 期望:失败,给出合理提示。
2.2 模块接口测试
- 检查接口返回的数据是否和预期结果一致。
- 检查接口的容错性,假如传递数据类型错误是否可以处理。
- 接口参数的边界值,传递的参数足够大或者为负是否可以正常处理。
- 接口性能,接口处理数据的时间,牵涉到内部就是算法与代码优化。
- 接口安全。
2.3 Web接口测试
可分为两类:服务器接口测试(http的get和post请求实现前后端数据传递,登录接口或查询接口)和外部接口测试(第三方登录)。
测试要点:
- 请求是否正确,默认请求成功是200,如果请求错误可以返回404,500。
- 检查返回数据的正确性与格式。
- 接口安全性。
- 接口性能,数据处理时间。
3)接口测试工具
-
postman:(常用必备!)
- Postman谷歌接口测试插件,支持用例管理,支持get、post,文件上传,响应验证,变量管理,环境参数管理,可以批量运行,支持用例导出导入。
- Postman谷歌接口测试插件,支持用例管理,支持get、post,文件上传,响应验证,变量管理,环境参数管理,可以批量运行,支持用例导出导入。
-
fiddler:抓包工具。常用必备!
-
mock:模拟出参的工具,有很多实现方案。
-
jemter:性能测试工具,也可以用来做接口测试。
- Meter是Apache组织开发的基于Java的压力测试工具,能够将请求转换为脚本来实现,并允许使用正则表达式创建断言来对请求返回结果进行判断,具备接口测试功能和性能的能力。
- Meter是Apache组织开发的基于Java的压力测试工具,能够将请求转换为脚本来实现,并允许使用正则表达式创建断言来对请求返回结果进行判断,具备接口测试功能和性能的能力。
-
python:requests库。
-
swagger-ui等一些web工程。
4)一般流程
rap+soapUi
- SoapUI是一个完整的自动化测试解决方案。支持SOAP和REST的Web服务,JMS企业消息层,数据库,丰富的互联网应用,等等。
- 对于自动化程度较高,SoapUI还提供了命令行工具,让您运行的功能/负载测试和几乎所有的任务调度程序,或作为您的构建过程中的一个组成部分MockServices集。
- 系统化接口文档,例如rap(淘宝分源的一个系统),具备接口维护标准化、版本化管理、MOCK测试等功能。
- 对标准化的接口内容做二次开发,可以直接导出Soapui等工具使用的格式,直接导入工具中使用。
1、接口文档rap系统录入
2、导出wadl格式文件
3、接口导入测试工具测试
4、工具生成用例集后,进行参数化,添加检查点。
【部分内容参考自】
- 软件中什么是接口?软件接口的具体定义:https://blog.csdn.net/weixin_43256057/article/details/84202532
- 接口测试:https://blog.csdn.net/qq_36362654/article/details/82838042
- 接口自动化:https://blog.csdn.net/lb245557472/article/details/73468014?locationNum=3&fps=1
- 什么是接口测试?这篇文章让你明白:https://mp.weixin.qq.com/s?__biz=MzI0ODUyMDA2MQ==&mid=2247484862&idx=1&sn=2b3f5501b7465c79e153f42c71a31283&chksm=e99ec9acdee940bad68d3297e09c822c336135007f78ea4497f4946c8fa540b0f339341b1ab6&scene=21#wechat_redirect2