如何作好接口测试?【转载】

sgbtmy:基于selenium的自动化框架开发,我主要是想问一下,你的框架除了前台的自动化,后台的数据的测试是否集成在你的测试框架中?html

  小刀:你好,我的理解的你所说的后台的数据的测试是指的是对数据的校验,不知理解的是否正确,那么根据这个理解,个人解释是,在咱们框架中,增长了不少的功能方法用来帮助进行自动化脚本的编写和结果校验,其中就包括后台数据校验方法,当咱们的测试用例须要在后台进行数据校验的时候,调用这些数据校验方法便可。至关因而,前台页面操做的自动化是封装selenium的方法去操做页面,而对后台数据的校验是经过增长功能方法来实现的,能够理解为不一样的两部分,可是在编写测试脚本的彷佛,根据测试用例的设计,这两部分均可以拿过来使用。java

  不知道是否解答了你的疑问,若是没有,请你指出,谢谢你。spring

tjy688:大家作接口测试的流程通常是怎么样的?数据库

  小刀:接口测试的流程其实和功能测试的流程相似,由于接口测试依赖的主要对象也是需求说明书,因此,最初的流程就是参与需求讨论,评审需求。编程

  需求肯定之后,开发会根据需求进行接口设计,会产出接口定义,在开发设计过程当中,有能力的话,能够给出一些针对设计的建议,提升可测性,针对需求及设计,进行测试计划,测试设计,而后还须要和配管肯定测试环境相关的事情。api

  在开发完成接口定义以后,就根据需求文档及接口定义进行测试用例设计,测试用例设计主要从业务场景,功能,以及异常测试几个方面考虑。框架

  测试用例设计完成后,针对测试用例进行评审,而后,若是开发代码部分可测时,便可进入测试了,由于是部分可测,可能会使用到mock方法。eclipse

  已有测试代码时,就要进行测试代码的持续集成了,咱们是使用hudson来进行持续集成的maven

  在项目结束后,会对每一个项目进行总结。编程语言

  若是有问题,请指出,咱们一块儿讨论。

xinhuayw:我想了解一下大家如今是怎样保证项目测试用例的重复运行的。

  小刀:对于接口测试来讲,项目测试用例的重复运行首先是表如今单个测试用例的独立性方面的,也就是说,每个测试用例的运行除了依赖被测对象和对应的数据库环境外,是不依赖于其余任何测试用例的,而且这个测试用例执行完毕后,对系统来讲,也是没有任何痕迹的,这样就保证了每一个测试用例运行时,都在一个干净的环境中运行。要实现测试用例的独立性,就必须对被测系统的设计有详细的了解,这样,不会出现测试用例执行后遗漏数据,环境未改变,另外,还须要对测试用例进行详细的设计。另外,要保证测试用例的重复使用,还须要作到测试用例的及时更新,在这个方面,咱们是作接口测试的人会维护对应的系统的接口测试用例,要保证,代码每次更新,测试用例都必须所有执行经过。

csun888:什么是接口测试,基础知识什么的讲讲吧!

  小刀:你好,接口能够分下面几种

  一、系统与系统之间的调用,好比银行会提供接口供电子商务网站调用,或者说,支付宝会提供接口给淘宝调用

  二、上层服务对下层服务的调用,好比service层会调用DAO层的接口,而应用层又会调用服务层提供的接口,通常会经过

  三、服务之间的调用,好比注册用户时,会先调用用户查询的服务,查看该用户是否已经注册。

  而咱们所要作的接口测试,先要了解是基于哪种类型的接口测试,不一样类型的接口测试方法多是不一致的,整体来讲,无论是那种类型,咱们只要把被测接口当作是服务方,而把咱们的测试手段当作是客户方,咱们的目的就是,经过咱们的测试手段,去验证服务端知足了他声明提供的功能。

  至于说到具体的测试方法,http协议的接口测试,通常会用jmeter去测试,jmeter的好处是不用写测试代码,直接使用jmeter提供的http请求去测试,也可使用HTTPClient去测试,好处是能够方便集成和自动化。java接口的测试,则须要编写测试代码去测试,有点相似于单元测试,可是须要更多的考虑业务场景。

gulun:接口测试的数据准备,应该怎么作呢?

  小刀:接口测试的数据准备,能够从下面几个方面去考虑:

  一、若是是只测试一次的接口,可使用硬编码的方式准备测试数据,在写测试代码的时候,使用到什么数据就写什么数据,为了不数据重复,可能比较多的会用到随机字符或随机数

  二、能够直接经过调用其余API的方式准备测试数据,这种状况在测试最上层服务的时候比较有用,好比测试团购购买服务,就须要准备要购买的团购数据,购买团购的用户数据,这个时候,能够直接调用生产团购的api和生成用户的api直接生成测试数据

三、使用excel或xml准备测试数据,这种准备测试数据的方式,主要针对对象数据的准备,好比能够将一条团购数据对应excel中的一条数据,由于通常开发都会使用pojo映射,而在准备测试数据的时候,这些pojo对象属性的设置每每是重复和大工做量的,用excel或XML方式准备,则能够减小在代码当中重复去准备这些数据。

  四、也可使用工具方法的形式去准备测试数据,经过在代码中写工具方法去实现数据生成,而在测试代码中调用工具方法去获得所需数据。

水生哥哥:你好,我想问一下:接口测试怎么设计测试用例呢?

  小刀:你好,我以为接口测试用例的设计方法其实和功能测试用例的设计方法是相似的,由于接口是须要知足需求的,而接口测试所依赖的也是需求说明书,可是,由于接口测试毕竟是经过代码去测试代码,因此,为了保证覆盖率,可能会使用到单元测试的方法,具体的测试用例设计,我考虑的以下,请参考,若是有错误,一块儿讨论。

  输入参数测试:针对输入的参数进行测试,也能够说是假定接口参数的不正确性进行的测试,确保接口对任意类型的输入都作了相应的处理:输入参数合法,输入参数不合法,输入参数为空,输入参数为null,输入参数超长;

  功能测试:接口是否知足了所提供的功能,至关因而正常状况测试,若是一个接口功能复杂时推荐对接口用例进行结构划分,这样子用例具备更好的可读性和维护性。

  逻辑测试:逻辑测试严格讲应为单元测试,单元测试应保持内部逻辑的正确性,可单元测试和接口测试界限并非那么清楚,因此咱们也能够从给出的设计文档中考虑内部逻辑错误的分支状况和异常;

  异常状况测试:接口实现是否对异常状况都进行了处理,接口输入参数虽然合法,可是在接口实现中,也会出现异常,由于内部的异常不必定是输入的数据形成的,而有多是其余逻辑形成的,程序须要对任何的异常都进行处理。

永远的测试者:才开始测试,对接口测试感兴趣,但是,当前的能力又没法进行接口测试,怎么样才能进入接口测试呢?

  小刀:你好,若是要作接口测试,是须要必定的编程能力的,须要学习相对应的开发语言的,而后还须要学习开发所使用的一些框架,好比ibatis,spring等,对数据库的操做也须要了解一些,还有eclipse操做,这些内容并不须要了解的多么深刻,若是只是通常的作作接口测试,这些可以使用就能够了,固然,要作好接口测试,就另当别论了。

  我不知道你当前是什么样的能力,因此,个人建议就是,

  一、学习编程语言,基础的语法,循环,条件等

  二、学习项目工程管理及开发框架:eclipse,maven,svn,ibatis,spring等

  三、学习Xunit

  四、本身尝试去写测试代码

  其实,上面的过程除了第一步是必须具有的意外,其余的均可以一边写测试代码,一边学习,最好的办法就是看开发写的代码,而且,请开发写一个正常的测试代码,而后照着开发的测试代码去模仿。

iTest99:你认为接口测试由开发团队作好仍是测试团队好?各有什么优点和弱点?

  小刀:我以为,仍是要区分一下单元测试和接口测试,单元测试通常来讲,是针对具体的代码逻辑进行测试,尽可能减小这些功能单元集成起来出错的可能性,通常是由开发人员来完成,而接口测试,更注重从用户的角度设计用例,更偏向于功能测试,单元测试设计测试用例的时候,可能更多的考虑是代码覆,而接口测试,则须要更多的考虑业务覆盖。单元测试由开发人员来作,能够保证从代码角度来看是没有问题的,但服务保证业务角度来看也是没有问题的,而接口测试,则经过业务的角度去设计测试用例,其实,也能够说是从更早的时候,以功能测试的方法,先保证项目的流程及功能是正常的,而不至于在页面开发完成后,又修改主要功能代码,致使项目赶工及一系列的重写。

  因此,我以为,单元测试由开发人员来作,接口测试由测试人员来作。

  至于你说的学习接口的成本,我以为这个成本并不高,缘由是:

  一、接口测试的用例也是依赖需求文档的,并非根据开发代码去设计

  二、接口测试的用例能够在功能测试中复用。

  三、接口测试看似增长测试时间,实则否则,由于,接口测试会更早的发现bug,而使得修改bug的成本更低,接口测试会减小功能测试的时间,应该接口测试会确保主要流程功能的正确性,接口测试更容易实现持续集成,从而减小回归测试的次数。

txTester11:我想请问:接口测试盒单元测试有什么区别?接口测试和白盒测试又有什么区别?

  小刀:单元测试是针对具体的代码逻辑进行测试,主要测试被测代码的一个很小的、很明确的功能是否正确。一般而言,一个单元测试是用于判断某个特定条件(或者场景)下某个特定函数的行为。例如,你可能把一个很大的值放入一个有序list 中去,而后确认该值出如今list 的尾部。或者,你可能会从字符串中删除匹配某种模式的字符,而后确认字符串确实再也不包含这些字符了。尽可能减小这些功能单元集成起来出错的可能性,单元测试通常是由开发人员本身去完成,单元测试可能不会考虑业务是如何的,会更多的考虑,我这个单元模块逻辑是否正确。

  接口测试指的是针对程序内部的或者外部的接口进行的测试,一个接口方法可能会包含多个单元模块,并且,一个接口会有本身特定的业务定义,因此,作接口测试的时候,更多的须要从业务的角度去考虑如何测试这个接口。

  无论是接口测试仍是单元测试,其实都属于白盒测试的一个阶段,白盒测试具体的方法有不少种,好比代码审查,好比代码覆盖。

 

转自:http://haoshenqi.blogchina.com/1522989.html

相关文章
相关标签/搜索