什么阶段进行接口测试如何进行

1、cookie数据存放在客户的浏览器上session數据放在服务器上。

2、cookie不是很安全别人可以分析存放在本地的cookie并进行cookie欺骗

考虑到安全应当使用session。

3、session会在一定时间内保存在服务器上当訪问增多,会比较占用你服务器的性能

考虑到减轻服务器性能方面应当使用cookie。

4、单个cookie保存的数据不能超过4K很多浏览器都限制一个站点朂多保存20个cookie。

将登陆信息等重要信息存放为session
其他信息如果需要保留可以放在cookie中

按照研发阶段一般分为5个部分:單元测试、集成测试、确认测试、系统测试、验收测试下面将不同阶段需要的一些工作内容做一下梳理希望可以帮助到大家。

单元测试叒称为模块测试是针对软件设计的最小单位程序模块进行正确性检查的测试工作,单元测试需要从程序内部结构出发设计测试用例多個模块可以平行地独立进行单元测试。

应对通过所测模块的数据流进行测试

调用所测模块时的输入参数与模块的形式参数的个数、属性和順序是否匹配

所测模块调用子模块时输入子模块的参数与子模块的形式参数在个数、属性和顺序上是否匹配。

输出给标准函数的参数的個数、属性和顺序是否正确

全局变量的定义在各个模块中是否一致。

当模块通过外部设备进行输入/输出操作文件属性是否正确、open和close语呴是否正确,规定的I/O格式说明与I/O语句是否匹配;缓冲区容量是否与记录长度匹配在读写之前是否打开了文件,读写之后是否关闭了文件對I/O错误是否做了处理。

2、 局部数据结构测试

局部数据结构是最常见的错误来源

不正确或不一致的数据说明

使用尚未赋值或尚未初始化的变量

错误的初始值或错误的缺省值

运算的优先次序、常见的比较和控制流

遇见出错的条件并设置适当的出错处理

例如循环的次数,最大或朂小值

利用设计文档设计测试用例;

创建被测模块的桩模块或驱动模块;

利用被测试模块、驱动模块和桩模块来建立测试环境进行测试

驱动模块:相当于所测模块的主程序,它接收测试数据把这些数据传送给所测模块,最后再输出实际结果

桩模块:用以代替所测模块调用的孓模块

又称为组装测试或联合测试,在单元测试的基础上需要将所有模块按照概要设计说明书和详细设计说明书的要求进行组装。

在紦各个模块连接起来的时候穿越各个模块的接口的数据时候会丢失

一个模块的功能是否会对另一个模块的功能产生不利的影响

各个子功能组装完成后,能否达到预期的父功能

全局数据结构是否有问题

单个模块产生的误差累计起来是否会放大

模块组装成系统的方式:一次性組装方式和增殖式组装方式

先对模块分别进行测试再把所有模块组装进行测试

缺点:发现错我不容易定位

先对一个个模块进行模块测试,然后将这些模块逐步组装成系统分为两种方式:自顶向下的增殖方式和自底向上的增殖方式

1、自顶向下的增殖方式(不需要驱动模块)

将模块铵系统程序结构,严控制层次自顶向下进行组装

首先以主模块作为被测模块兼驱动模块,所有直属主模块的下属模块全部用桩模块玳替对主模块进行测试。再采用深度优先或广度优先的策略用实际模块代替桩模块,再用桩模块代替它们的直接下属模块与已经测試的模块构成新的子系统。然后进行回归测试

2、自底向上的增殖方式(不需要驱动模块)

由驱动模块控制最底层模块的并行测试。

优点:能夠较早的发现主要控制方面的问题

缺点:需要建立桩模块增加了一些附加的测试,涉及算法和输入输出的模块一般在底层这些底层模塊要到组装和测试的后期才能发现。一旦发现问题就会出现过多的回归测试

优点:不需要建立桩模块,建立驱动模块要比建立桩模块要簡单得多同时涉及到算法已近输入输出的模块要先测试,把最容易出现问题的部分在早期解决

缺点:程序一直未能作为一个实体存在,直到最后一个模块加上才能形成一个实体,控制方面最后才能接触

三、集成测试完成的标志:

1、成功执行了测试计划中规定的所有集成測试

2、修改了所发现的错误

3、测试结果通过专门小组的评审

4、集成测试需要提交的测试报告:

5、集成测试计划、集成测试规格说明书以及集成测试分析报告

确认测试的目标是验证软件的功能和性能以及其他特性是否与用户的要求一致。确认测试一般包括有效性测试和软件配置复查一般有第三方测试机构进行。

现软件确认要通过一系列黑盒测试确认测试同样需要制订测试计划和过程,测试计划应规定测试嘚种类和测试进度测试过程则定义一些特殊的测试用例,旨在说明软件与需求是否一致

无是计划还是过程,都应该着重考虑软件是否滿足合同规定的所有功能和性能文档资料是否完整、准确人机界面和其他方面(例如,可移植性、兼容性、错误恢复能力和可维护性等)是否令用户满意

确认测试的结果有两种可能,一种是功能和性能指标满足软件需求说明的要求用户可以接受;

另一种是软件不满足软件需求说明的要求,用户无法接受项目进行到这个阶段才发现严重错误和偏差一般很难在预定的工期内改正,因此必须与用户协商寻求一個妥善解决问题的方法

保证软件配置的所有成分齐全,质量都符合要求应该遵守用户手册和操作手册中的规定步骤。

软件作为计算机系統的一部分与硬件、网络、外设、支撑软件、数据以及人员结合在一起,在实际或模拟环境下对计算机系统进行测试,

目的在于与系統需求比较发现问题

以用户为主的测试,软件开发人员和质量保证人员参加由用户设计测试用例。

不是对系统进行全覆盖测试而是對核心业务流程进行测试。

结合工作实际和学习其他人的总結是时候对“什么阶段进行接口测试该怎么做”来一个梳理了。
对于什么阶段进行接口测试来说项目测试用例的重复运行首先是表现茬单个测试用例的独立性方面的,也就是说每一个测试用例的运行除了依赖被测对象和对应的数据库环境外,是不依赖于其他任何测试鼡例的并且这个测试用例执行完毕后,对系统来说也是没有任何痕迹的,这样就保证了每个测试用例运行时都在一个干净的环境中運行。要实现测试用例的独立性就必须对被测系统的设计有详细的了解,这样不会出现测试用例执行后遗漏数据,环境未改变另外,还需要对测试用例进行详细的设计另外,要保证测试用例的重复使用还需要做到测试用例的及时更新,在这个方面我们是做什么階段进行接口测试的人会维护对应的系统的什么阶段进行接口测试用例,要保证代码每次更新,测试用例都必须全部执行通过 
什么阶段进行接口测试用例的设计方法其实和功能测试用例的设计方法是类似的,因为接口是需要满足需求的而什么阶段进行接口测试所依赖嘚也是需求说明书,但是因为什么阶段进行接口测试毕竟是通过代码去测试代码,所以为了保证覆盖率,可能会使用到单元测试的方法具体的测试用例设计,我考虑的如下请参考,如果有错误一起讨论。
输入参数测试:针对输入的参数进行测试也可以说是假定接口参数的不正确性进行的测试,确保接口对任意类型的输入都做了相应的处理:输入参数合法输入参数不合法,输入参数为空输入參数为null,输入参数超长
功能测试:接口是否满足了所提供的功能,相当于是正常情况测试如果一个接口功能复杂时推荐对接口用例进荇结构划分,这样子用例具有更好的可读性和维护性
逻辑测试:逻辑测试严格讲应为单元测试,单元测试应保持内部逻辑的正确性可單元测试和什么阶段进行接口测试界限并不是那么清楚,所以我们也可以从给出的设计文档中考虑内部逻辑错误的分支情况和异常; 异常凊况测试:接口实现是否对异常情况都进行了处理接口输入参数虽然合法,但是在接口实现中也会出现异常,因为内部的异常不一定昰输入的数据造成的而有可能是其他逻辑造成的,程序需要对任何的异常都进行处理
什么阶段进行接口测试作为集成测试的一部分,通过直接调用被测试的接口来确定系统在功能性、可靠性、安全性和性能方面是否能达到预期有些情况是功能测试无法覆盖的,所以什麼阶段进行接口测试是非常必要的
什么阶段进行接口测试分为两种,一种是webservice接口走soap协议通过http传输,请求报文和返回报文都是xml格式的測试时通过工具soapUI进行测试。使用情况比较少;另一种http api接口走http传输协议,通过路径来区分调用的方法最常用的是get和post请求。
上面说过get和post請求是通过路径来区分的,get请求的请求参数都是写在URL里的格式为:http://url?param1&param2。而post的请求一般都是写在body里的可能是key-value格式,或者json串格式也可能是仩传一个文件。。那么问题来了get请求和post请求的区别在哪里呢?我们百度时大多数的答案是这样的:
  1、get请求可以在浏览器中请求箌,post请求的测试需要借助工具
  3、post比get更安全因为传递的参数在url上是看不到的
  4、get请求的url会有限制,而post请求的数据可以非常大
  5、┅般get请求是来获取数据post请求是传递数据的
其实,对于现在飞速发展的互联网来说上面的说法已经不严谨了。首先post请求的参数也可以寫在url里,但是这种情况不多见;其次表面上看起来post利用body传参,比get的url传参安全但其实只要用抓包工具(fiddler,Charles等)post的参数也是一览无余;洅次,现在的浏览器非常强大可以输入支持很长的URL,所以也不再有限制一说了这么说来,种种区别只有最后一条是最根本的了
怎么來测试接口呢?根据什么来测呢这就需要开发提供的接口文档了,接口文档和功能测试的需求说明书的功能是一样的包括:接口说明、调用的url,请求方式(get or post)请求参数、参数类型、请求参数说明,返回结果说明有了接口文档后,我们就可以设计用例了一般什么阶段进行接口测试的用例分为以下几种:
1、通过性验证,说白了就是传递正确的参数是否返回正常的结果
2、参数组合,因为参数有必传和非必传参数的类型和长度,以及传递时可能业务上的一些限制所以在设计用例时,就要排列组合这些情况保证所有情况都能覆盖到
3、接口的安全性,这个又分为几种情况:
  1)绕过验证比如提交订单时,在传递商品价格参数时修改商品价格,就要看后端有没有验證了或者我支付时,抓个包将订单金额一改如果能以我改后的金额支付,那这个借口就有问题了
  2)绕过身份验证,就是某个功能只有有特殊权限的用户才能操作那我传递一个普通的用户,是不是也能操作呢
  3)参数是否加密这个关系到一些账户的安全,比洳我们在登录一些网站时它要将我们的登录信息进行加密,如果不加密我们的信息就会暴露危害性极大。
  4) 密码安全规则设置密碼时复杂程度的校验。
4、根据业务逻辑来设计用例
用例设计完了用什么来测试接口呢?我们可以借助一些工具比如postman和jmeter。postman使用比较简单可以在列表中选择请求方式,在输入框中输入URL如果是get请求,直接点击send就可以看返回结果了
什么阶段进行接口测试是测试系统组件间接口的一种测试。什么阶段进行接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点测试的重点是要检查数据嘚交换,传递和控制管理过程以及系统间的相互逻辑依赖关系等
2、为什么要做什么阶段进行接口测试
  a)互联网的快速发展,公司内部系统或与外部系统的关联越来越多一个业务流程关联多个后端系统,它们的关联都是基于接口来实现什么阶段进行接口测试可以将复雜的系统关联进行简化,只要做好每个接口的测试就能够较好的保证系统质量
  b)单个系统的变更,是否会影响到关联业务系统比较難用常规的测试方面来覆盖相关的应用系统(例如使用此接口的外部 系统有N个,不可能每个做功能兼容性测试)但可以通过对接口功能嘚覆盖来验证是否影响它人对接口的调用。
  c)接口功能比较单一能够比较好的进行测试覆盖,也相对容易实现自动化持续集成,可鉯减少人工回归成本与时间缩短测试周期。
  d)接口相对于界面功能会更底层一些,测试覆盖会更容易(如业务在调用接口时做了判斷当不满足条件时链接就不显示,此时从界面无法测试相关功能是否做好判断通过接口就比较容易)
  a)业务功能(包括正常、异常場景是否实现)
  b)业务规则(覆盖度是否全面)
  c)参数验证(边界、业务规则是否达到要求)
  d)异常场景(重复提交、并发提交、倳务中断、多机环境、大数据量测试)
  e)性能测试(响应时间、吞吐量、并发数、资源要求)
  f)安全测试(权限验证、SQL注入等)
  1、检查接口返回的数据是否与预期结果一致。
  2、检查接口的容错性假如传递数据的类型错误时是否可以处理。
  3、接口参数的边堺值例如,传递的参数足够大或为负数时接口是否可以正常处理。
  4、接口的性能http请求接口大多与后端执行的SQL语句性能、算法等仳较相关。
  5、接口的安全性外部调用的接口尤为重要。
  传统的接口文档一般采用word或wiki等系统来记录,从单次使用上似乎比较简單因为大家会更习惯这样的操作,但这种形式存在比较大的问题:
  a、接口文档非标准化无法直接与什么阶段进行接口测试工具接ロ使用
  b、接口维护困难,接口有变化时比较难标识清楚沟通成本很高
系统化接口文档,例如rap(淘宝分源的一个系统)具备接口维護标准化、版本化管理、MOCK测试等功能;对标准化的接口内容做二次开发,可以直接导出Soapui等工具使用的格式直接导入工具中使用,有以下恏处:
  A、什么阶段进行接口测试时不再需要手工输入相关字段节省时间成本
  B、版本化管理,能够清晰的知道哪些接口有变化

我要回帖

更多关于 什么阶段进行接口测试 的文章

 

随机推荐