接口测试的重要性
接口就是有特定输入和特定输出的一套逻辑处理单元
测试金字塔模型中,单元测试,接口测试,界面测试,单元测试一般是开发来做,
但是质量又是测试保障,所以由测试来进行接口测试能够在ui测试前面,发现问题,降低开发成本。
加大我们自己主导的接口测试的工作投入比重,来弥补单元测试的不足,这样,上面那个金字塔模型就会逐渐演变成菱形模型。
接口测试更容易和其他自动化系统相结合;
相对于界面测试,接口测试可以更早开始,也可以测试一些界面测试无法测试的范围,因此它使“测试更早的投入”这句话变成现实;
接口测试还可以保障系统的鲁棒性,使得被测系统更健壮。
接口测试是通过设计输入和预期输出来完成测试验证的,你之前掌握的测试用例设计方法等测试基本功,在这里还是有用武之地的;
接口测试是一个技术知识和业务知识相结合的工作,可以更好地提升你自己的技术实力,让那些说我们是“点工”的人早早闭嘴;
接口测试也是功能测试,要说有和界面测试不同的地方,仅仅是和我们交互的,不再是开发工程师设计的界面,而是测试工具或者代码。
接口测试的正确性:正确的request正确的返回结果,错误的request正确的拒绝。
理想的提测项目
一个理想的提测项目,在提测的过程中应该既包含前期参与的产品需求、原型设计,这些是由产品经理来提供的;也包含后端接口文档、代码单元测试脚本,这些是由开发工程师提供来的。
没有接口文档怎么办?
借助一些工具的辅助来完成接口分析;(fiddler)
通过工具截获一些接口信息;
通过分析接口的访问方式、参数等信息整理出一些问题,和研发工程师沟通这些问题,将一些不知道的参数含义、参数取值范围等问题问清楚。
针对每一个参数,你都要从下面的几点详细询问,并保证你已经真的理解了这些内容。那么,都询问些什么呢?我认为主要有三点。
1.参数的含义以及来源。你要搞清楚每一个参数的含义,也就是这个参数对应的实际自然语言的名字,通过记录每一个参数的中文语义,也会让更你容易记住这个函数是干什么的。同时,你也要知道这个参数的赋值是从哪里来的,是从其他页面的返回值中得到的?还是S生成的?如果是其他页面或者接口返回的,那么,是哪一个接口返回的哪个字段?这样,当你开始做接口测试的时候,你就知道去那里拿到这个参数的数值了。如果是另一个接口的返回字段,那么,你还需要维护一份返回该参数接口的接口信息文档,以使于自己下一次创建对应的参数,如果不可以创建,那么你就要知道这个参数的生成规则,也,要知道如何手动构造它。
2.参数的作用域。参数的作用域指的是这个参数在这个接口中是做什么用的,它在哪一个访问周期里是一直存在的,它是否导致了业务逻辑分支等。比如说,这个参数是用来验证用户权限吗?它的验证算法是什么?之所以要搞清楚这些内容,是为了你在做接口测试的时候,可以设计更小的参数组合来覆盖更多的业务罗粗,这是测试用例去除冗的一个很好的方法。
3.返回值的含义。针对上面一大串的返回SON,你要搞清楚在返回值中,每一个json的key所对应的含义,这祥,当你需要和这个接口产生交互的时候,就可以快速地拿到对应参数的含义,完成业务罗辑上下文的参数串联了。
总地来说,Request的全部参数和Response的全部参数对于接口测试来说,都是必要的输入项。
刚来个要求,把app所有接口压测一遍,半天时间,有的时候最难的不是工作,而是遇到