背景:手工测试外包项目经理,接触自动化以后感觉能稳定提高产品质量。提议公司引入自动化,但是客户觉得没有必要,自己学习然后去朋友公司里去构建自动化测试框架。(请假去搭建框架,所以每去一次必须要获得很多信息。)
经过:我按照我自己对于接口的理解,参考了 home 里以前大家写的框架,搭建了一套自动化接口测试的框架。朋友这里给我一个项目做试点,这个项目包括 app 和 web 两个部分。但是他给我出了一个难题,就是要先做 web 的接口测试。开始我以为 web 的接口和 app 的接口一样,接触下来完全不一样。今天越设计越感觉不对,所以和项目开发沟通了一下。我把和他沟通话放出来,请大家给我解惑。
起源是我在测试一个接口,这个接口的功能是根据 lid 的值(lid 可以理解为一个频道的号码)然后提交提问请求。
我开始设计测试用例。 我设计 lid 为-1,0,1,19,999,@
我发现只要我用整数去发请求,得到的返回都是一样的。
{"HasError":false,"ErrMessage":"","ObjectValue":1860,"HRESULT":"0"}
我就纳闷了,这是什么情况。以为没有-1 , 0 , 999 这些频道,尽然也返回数据处理正常。
这个是开发对我的回答的回复
一、跨系统交互的接口需要验证的约束和明确的协议,页面和异步接口主要用作用户预期的交互和展现,不是接口标准,所以只对表现和交互负责。这个需要跟接口区分开来。
我的理解:web 页面的接口大多数是异步接口,和我们平时说的接口不一样。所以做自动化测试有很大的难度。目前自动化测试接口一般是 app 和后台交互的那种。
二、这个是接口标准验收的边界和非预期数据的安全测试用例,不适用于页面和页面的用户异步接口,您要我写的是系统间调用的接口,而非用户基于 UI 逻辑的预期数据交互接口。
我的理解,这种接口的验收标准,其实只要在正确的逻辑下跑同乐就可以了。那种边界值,非预期的数据测试属于 安全测试。
三、那是客户端系统和后端系统自定义的通讯和交互,我们这个直接是基于展现的页面,没有客户端的概念,要说客户端那就是用户浏览器,协议就是 http1.1 数据协议就是 HTML
我的理解,这个就是 app 和 web 本质的区别,其实 web 没有什么所谓的接口,他们都是直接用 html 显示的。(换句话说 web 做接口测试 是不存在的。)
四、嗯,缺少对非用户操作的异常值引起的空引用做响应的反馈,基本上这种情况我们会在安全测试环节做处理的,如果是自动化测试仅仅自动运营用户的用例也就行了,如果按这样测页面,那估计得考虑是不是做自定义客户端了
我的理解,他又提到了安全性测试,安全性测试到底是个什么东西,网上的解释太多了,我还是没有搞清楚他说的事情,但是猜的话应该是边界值之类的。
五、这个也是 bS 和 APP 不一样的地方,browser 有它自己的地址栏让用户随便输入,APP 没有,但是在安全测试环节会对客户端接口做异常请求测试。
我的理解,安全测试好像是在很底层的测试。
六、可以明确一下项目开展的目的,目的是做自动化测试,那么由于是网站,肯定是按照 “用户操作” 的预期去录制相应的请求和包,用此来验证用例,也请忽略我所编写的 “接口文档”,它不是用户用例,自动化的初级目标是验证预期是否达成,所以我们只要找到预期就行。那些非预期的边界测试多半是应用在测试人员手动执行用户数据交互的功能测试场景的。如果功能测试和安全测试也要做自动化测试,那么就是自动化测试的高级标准了,不过一般的自动化安全测试工具或服务也仅仅做特征不匹配,不做逻辑验证,乌云安全还是得人工手动,且收费的。
我的理解,功能测试和安全测试做自动化,属于高级标准。啥时候还有这种标准。他提到了乌云,但是我去乌云看了下,好像网站关闭了。
太多问题需要思考了,我打算周一就请假过去,但是在过去前,当然要先做好功课,如果有谁知道的,请指点一二,哪怕给点资料也可以。
问题一,web 存在接口测试这种说法吗?
问题二,那种接口边界值的测试也会被叫做安全性测试吗?