精华内容
下载资源
问答
  • 软件测试之接口测试

    2020-11-26 20:44:53
    1、接口测试理论 接口测试主要是检查数据的交换、传递和控制管理过程,发送数据后,看返回数据是否正确,返回值类型是否正常。 接口测试主要分为两类:模块接口测试和Web接口测试 模块接口测试:是单元测试的基础...

    1、接口测试理论

    接口测试主要是检查数据的交换、传递和控制管理过程,发送数据后,看返回数据是否正确,返回值类型是否正常。

    接口测试主要分为两类:模块接口测试和Web接口测试

    模块接口测试:是单元测试的基础,它主要测试模块的调用与返回

    web接口主要分为:服务器接口测试和外部接口测试

    服务器接口测试:主要是测试浏览器和服务器之间的接口,

    外部接口:第三方提供的接口

    2、接口测试工具

    Postman --Charles--Fiddler:只接受单次单个接口的测试,很难满足多接口调用逻辑验证问题,也不太灵活,没办法做到数据化

    Jmeter:可实现接口自动化测试

    3、测试要点

    1)检查接口返回的数据是否与预期结果一致

    2)检查接口的容错性,假如传递数据的类型错误时是否可以处理。例如上面的例子是支持整数,传递的是小数或字符串呢?

    3)接口参数的边界值。例如,传递的参数足够大或负数时,接口是否可正常处理。

    4)接口的性能,接口处理数据的时间也是测试的一个方法

    4、状态码

    200:返回成功

    404:错误的请求,请求的资源不存在

    500:服务器内部错误

    5、Get与post请求的区别
    Get:从指定的服务器中获取数据,Get请求的参数数据会附在URL之后,以?分割URL和传输数据,参数之间以&相连,参数明文展现在URL上,GET请求能够被缓存

    Post:提交数据给指定的服务器处理,参数不会展现在URL上,请求不会被缓存

    6、环境准备

    安装jmeter需要有jdk的支持

    1)下载jdk+安装jdk+配置环境变量

    变量名:JAVA_HOME
    变量值: C:\Program Files\Java\jdk1.8.0_51 (即jdk安装的位置)
    变量名:Path  
    变量值: %JAVA_HOME%\bin;%JAVA_HOME%\jre\bin
    变量名:CLASSPATH
    变量值:.;%JAVA_HOME%lib;%JAVA_HOME%lib\tools.jar(记住前面的.)

    附:查看jdk是否安装成功:命令行中输入Java -version,如有版本号显示表示安装成功

    2)下载jmeter+安装jmeter+配置环境变量

    变量名:JMETER_HOME

    变量值:C:\Program Files\apache-jmeter-2.11

    变量名:CLASSPATH

    变值:%JMETER_HOME%\lib\ext\ApacheJMeter_core.jar;%JMETER_HOME%\lib\jorphan.jar;

    %JMETER_HOME%\lib/logkit-2.0.jar;

     

    附:看是否安装成功:双击jmeter.bat,会弹出两个窗口,一个是windows窗口,一个是Jmeter界面

     

     

    7、接口测试步骤

    前提:从开发人员那里获取接口文档,接口文档应该包括完整的功能接口、接口请求方式、接口请求URL、接口请求参数、接口返回参数。如果当前项目没有接口文档,则可以使用fiddler或Charles对APP进行抓包确认。

    方式1:fiddler接口测试步骤

    1)准备工作

    下载安装fiddler

    安装fiddler证书:这是为了让Fiddler能捕获HTTPS请求,如果你只需要截获HTTP请求, 可以忽略这一步;打开IPhone 的Safari, 问 http://本机IP地址:8888;证书的密码就是手机设置的锁屏密码

    配置fiddler为代理:打开手机,找到你的网络连接,打开HTTP代理,输入Fiddler所在机器的IP地址(比如:192.168.1.104)以及Fiddler的端口号8888

    (2)通过请求构造器进行接口测试

    步骤如下:

    • 将左侧栏接口直接拖到composer下,如下所示

     

    • 在【Request Body】中输入或修改请求参数,点【Execute】,发送模拟请求
    • 在左侧可以看到请求的session,双击或点击【Inspector】,可以查看请求响应结果

    注意:get请求,request body中无内容,只能通过复制接口URL后的参数

    (3)通过设置断点进行接口测试

    作用:能够让你清晰地看到程序执行的具体步骤,便于程序的调试运行和分析其中的变量变化和出错的地点.

    设置好断点后,你可以修改httpRequest的任何信息包括host, cookie或者表单中的数据,模拟真实用户请求。步骤如下:

    • 打开Fiddler点击Rules-> Automatic Breakpoint->Before Requests或者按F11
    • 左侧栏中选择一个接口,按R键
    • 点击Inspectors tab下的WebForms tab或testview tab修改参数信息,然后点击Run to Completion

     

    break on response :拦截修改服务器返回数据(可在webform或textview)

    run to complete :执行修改过的请求数据(可在webform或textview)

    查看返回的数据是否正确

    方法2:jmeter自动化接口测试

    (1)导入fiddler测试脚本方式

    fiddler抓APP接口,然后导出jmx格式,在jmeter中打开此文件,测试计划会自动添加上【http请求默认值】、【http信息头管理器】、【http cookie管理器】和监听器【查看结果树】

    http请求默认值】:设置公共的域名和端口号

    http信息头管理器】:在添加http请求之前,添加一个HTTP信息头管理器,发请求头中的数据通过键值对的形式放到HTTP信息头管理器中。在往后端请求的时候就可以模拟web携带header信息了。

     

     

    (2)手动在Jmeter中添加相关组件

    • 添加线程组(右击测试计划-添加-线程组)

     

    名称:待测接口的名称

    线程数:虚拟用户数即并发数,一个线程表示一个虚拟用户

    Ramp-Up Period(s):所有线程启动的时间,设置每个线程间的启动间隔

    循环次数:测试循环的次数,如果勾选了“永远”,那么所有线程会一直发送请求,直到手动停止运行脚本;

    • 添加http请求默认值

    主要是用来设置被测系统的域名和端口,线程组里的所有“HTTP Sampler”可默认使用此设置。

    https://edu.csdn.net/course/detail/22948

    https://edu.csdn.net/lecturer/3215

    https://edu.csdn.net/course/detail/30898

    https://edu.csdn.net/course/detail/25768

    • 添加http cookie管理器

    cookie manager实际上就像一个容器一样,自身就是Jmeter声明出来的一块存储空间,他会接受服务器发来的所有cookie的赋值命令,自动在cookie manger里面建立相应的变量,记录值。这个过程仅仅需要我们添加一个cookie manger到测试脚本里(jmeter.properties中需要开启CookieManager.save.cookies=true这项,且特别需要注意的是,一个脚本里最好只有一个cookie manger否则会混乱。

    之后再确定服务应答的时候已经设置了cookie值之后,在需要的地方用${COOKIE_变量名}的取值方法取得cookie数据。

      此外还有一点需要注意,当我们的脚本有跨域的情况时,${COOKIE_变量名}只能取到当前域中的cookie值,如果需要使用其他域中的cookie,那只能通过正则来提取。提取sample或者sub-samples的header部分,把值当成变量记录下来。

    HTTP Cookie 管理器具备三个功能:
    1. Cookie 管理器就像一个 web 浏览器那样存储并发送 cookie。
    如果你有一个 HTTP 请求,其返回结果里包含一个 cookie,那么 Cookie 管理器会自动将该 cookie 保存起来,而且以后所有的对该网站的请求都使用同一个 cookie。每个 JMeter 线程都有自己独立的"cookie 保存区域"。因此,如果你在测试网站的时候使用了 Cookie 管理器来存储 session 信息的话,那么每个 JMeter 线程将会拥有自己独立的 session。**注意这些 cookie 不会显示在 Cookie 管理器里,你可以通过察看结果树来对其进行察看。
    2. 接收到的 cookie 数据可以作为 JMeter 线程的参数进行存储(JMeter 2.3.2 之后的版本默认不再打开这个功能)。
    要将 cookie 存储为参数,定义属性"CookieManager.save.cookies=true"cookie 在被保存之前会在名字上加上 "COOKIE_" 前缀(避免和本地参数重复)。设置好名称TEST 的cookie可以用 ${COOKIE_TEST}进行引用。如果不希望这个前缀可以对属性 "CookieManager.name.prefix=" 进行定义。
    3. 手工添加一个 cookie 到 Cookie 管理器。
    注意如果你这么干了,这个 cookie 将被所有 JMeter 线程所共享。这种方式用于创建有很长过期日期的 cookie。
    HTTP Cookie 管理器应用实践。

    对于 bug 跟踪系统的测试,测试场景将会包含一个 "仅登录一次" 操作,这个明显仅需新用户登录。新建一个项目,我们把登录请求放到 "Only Once Controller"。这意味着登录请求将仅被执行一次。之后,cookie 将被 HTTP Cookie 管理器所保存并用于以后的请求。
    现在我们将执行一次仅一个用户的场景。之后我们会切换到察看结果树以核实 JMeter 是否已对 cookie 做了处理。

    你会看到在 POST 请求的时候 JMeter 捕捉到了 cookie。现在我们来验证这个 cookie 是否会被应用于后续的请求。

    • 添加http请求(右击线程组-采样器-http请求)

       录入被测接口的详细信息,包括请求路径,对应的请求方法以及随请求一起发送的参数列表.

     

    协议:可以是http或https,一般都是http

    请求的方法:GET、POST、HEAD、PUT、OPTIONS、TRACE、DELETE

    路径:填入接口请求的URL

    请求参数:如果是GET方法的请求,请求参数直接写在URL后面

    如果是POST的方法,则需要在Body Data中填入包含请求参数的数据Body Data可以从Fiddler抓的包中获取,将Fiddler抓取的到数据包中Inspectors-TextView中的数据复制到Body data中即可);

    • 设置检查点:添加-断言-响应断言

    查看测试结果时,有时会发现返回数据不符合要求时,Jmeter给出的结果仍是通过的。这时候我们需要通过断言来判断返回数据是否符合要求。

    比如,我们可以添加一个断言来检查返回信息中是否包含关键字“errMsg”来判断错误信息:首先添加一个响应断言,在要测试的响应字段中选择响应文本,在模式匹配规则中选择包括,勾选否,在要测试的模式中添加提一条,输入关键字“errMsg”;检查网络返回结果中不包含“errMsg”的才会判定为通过。

     

    • 添加监听器--查看结果树

    查看结果树:在结果树中会以树形结构展示每个接口请求的测试结果,包括取样器结果、请求、响应数据,在响应数据中可看到网络侧返回的数据,可以以接口文档中期望返回的参数做比较以判断返回是否正确。在结果树中通过颜色可以直观的看到接口测试的结果,绿色为通过,红色为失败。

                

    另外,我们还可以从监听器中添加一个断言结果,在断言结果中可查看断言的详细返回信息。

     

    8、参数化详细介绍

    参数化:如果系统不允许相同的用户名和密码同时登录,或者想更好的模拟多个用户来登录系统。这个时候就需要对用户名和密码进行参数化,使每个虚拟用户都使用不同的用户名和密码进行访问。断言中也可以使用到参数化。对于这种接口不变,只是改下请求参数的测试,我们可以考虑引入参数化到概念。

    参数化只需简单五步就能搞定:

    准备数据、配置元件、设置参数、引用参数和执行用例

    这里介绍两种参数化的方式:函数助手,CSV Data Set Config

    1、数据准备

    用记事本写了五个用户名和密码,保存为.dat/.txt/.csv格式的文件,编码问题在使用CSV Data Set Config参数化时要求的比较严格,记事本另存为修改编码UTF-8.注意用户名和密码是一一对应的,中间用户逗号(,)隔开。将这个文件放在( C:\JmeterWorkSpace\t.dat  )路径下

     

    2、设置引用参数

    方式1、借助函数助手的方式

    a、点击菜单栏“选项”---->函数助手对话框,看下图:  CSV文件列号是从0开始的,第一列0、第二列1、第三列2、依次类推。

     

    b、复制生成的参数化函数,打开登陆请求页面,在右则的参数化中找到我们要参数化的字段,这里对用户名和密码做参数化,第一列是用户名,列号为0;第二列是密码,列号为1;修改函数中对应的参数化字段列号就可以啦。

     

     

    方式2、借助jmeter中的配置元件(CSV Data Set Config)

    a、选中线程组,点击右键,添加-配置元件-CSV Data Set Config

     

    b、引用以上设置的参数

    这里设置了两个参数,第一个地方是请求路径里面,将citycode参数化了,第二个地方是断言里面,将城市参数化了

    1.讲请求路径里面的citycode换成:${citycode}

     

    2.将断言里面的城市名称,换成:${city}

     

    9、逻辑控制器

    仅一次控制器表示在该控制器下的Http Request,每个Thread只执行一次,不会循环loop

    交替控制器表示在该控制器下的Http Request,Thread会依次执行,而不是乱序执行

     

     

    10、如何解决json中文乱码问题?

    方法1:将该采样器中的“http请求”中的“contentencoding”值改成utf-8

    方法2:将jmeter.property文件中“sampleresult.default.encoding=。。”改成sampleresult.default.encoding=utf-8

    方法3:线程组添加后置处理器-beanshell postprocessor,在框子输入:prev.setDataEncoding(“utf-8”)

    了解更多测试知识访问如下链接

    https://edu.csdn.net/course/detail/22948

    https://edu.csdn.net/lecturer/3215

    https://edu.csdn.net/course/detail/30898

    https://edu.csdn.net/course/detail/25768

     

     

     

     

    展开全文
  • 软件测试之接口测试总结 一 API接口 1.什么是接口 通过API接口实现计算机软件之间的相互通信 2.为什么要做接口测试? ①.不通过前端UI界面,或者前端UI界面还没设计出来 ②.需要对功能做测试,这也是测试工程师需要...

    一 、API接口

    1.什么是接口

    通过API接口实现计算机软件之间的相互通信(接口测试是一种针对服务端的功能测试)
    

    2.为什么要做接口测试?

    ①.不通过前端UI界面,或者前端UI界面还没设计出来
    ②.需要对功能做测试,这也是测试工程师需要尽早介入测试
    ③.业务的逻辑,数据的资源,安全,都需要通过接口去测试
    

    3.接口测试流程

    需求评审-接口评审---->需求分析-接口分析---->接口用例设计---->执行测试用例---->bug的定位与追踪---->接口测试报告
    

    4.接口分类

    ①.对象分类
    	a.内部接口-集成测试,灰盒(一般开发负责)
    	b.外部接口-联调测试,方案,联调测试通过准则
    ②.协议分类
    	a.Webservice接口--soap协议
    	b.http api接口---http协议
    

    5.接口文档

    ①.接口名称-功能描述
    ②.接口URL
    ③.支持的格式(xml/json)-请求数据格式
    ④.请求方式-get/post/put/head/delete/trace/opions/Connect/java/dubbo
    ⑤.请求参数-参数名称,类型,是否必填,参数说明请求头(测试用例设计)
    ⑥.返回参数-返回码,返回值信息,返回xmll/json信息(预期结果)
    

    6.接口测试过程

    ①.excel表存储接口测试用例
    ②.使用postman/jmeter进行接口测试
    ③.记录测试结果,提交bug
    ④.在接口测试过程中,如果系统已经完成,验证地方(1.接口响应值  2.系统对应的功能数据  3.数据库的数据验证)
    

    二、接口测试要点

    1.了解接口的功能,提交的方式(get/post),接口的URL,接口参数(必填/选填参数)
    2.明确接口正常请求,正常情况接口会返回哪些响应参数
    3.通过性验证:
    	①.按照接口文档上的参数,正常传参数值,是否可以返回正确的结果
    	②.接口的容错性,例如传递数据的类型错误时是否可以处理.(整数  小数  字符串)
    	③.接口参数的边界值.
    	④.接口的性能,接口处理数据的响应时间
    	⑤.接口的安全性,尤其是外部接口
    

    三、接口测试用例

    1.正常场景
    功能是否按照接口文档要求的功能实现

    2.异常场景
    参数为空
    参数多填
    参数少填
    参数类型错误
    参数数值范围错误
    异常场景下是否有正确的处理逻辑以及响应提示

    3.必填参数
    对于必填参数需设计传参数和不传参数,接口的返回情况
    必填参数传参
    必填参数都正确
    必填参数类型错误(非法 特殊字符)
    必填参数数值范围错误(超过边界)
    必填参数空格(前 中 尾)
    必填参数不传参
    必填参数全部为空
    必填参数部分为空

    4.选填参数
    一般接口对于非必填参数都不会做非正常性传值的判断,只需要测试接口返回的内容是否正确.
    如果有接口文档说明对非必填参数做了非正常的验证,也要对其进行再次验证
    覆盖所有参数,正向用例
    覆盖左右必填参数,正向用例
    某一必填参数,逆向用例
    必填参数的基础上,少传一个参数
    多传一个参数,逆向用例
    必填参数数据类型错误,数据值错误,逆向用例(整数型—>字符串)
    任意组合可选参数,正向用例
    与业务逻辑相关的,用户身份认证为空或错误,逆向用例
    字段的唯一性校验,如:插入数据字段不能重复,发送两次请求,查看第二次返回的结果

    三、接口测试质量评估标准:

      1. 业务功能覆盖是否完整
    
      2. 业务规则覆盖是否完整
    
      3. 参数验证是否达到要求(边界、业务规则)
    
      4. 接口异常场景覆盖是否完整
    
      5. 接口覆盖率是否达到要求
    
      6. 代码覆盖率是否达到要求
    
      7. 性能指标是否满足要求
    
      8. 安全指标是否满足要求
    
    展开全文
  • 接口测试基础入门 一、什么是接口测试 1.为什么做接口测试: 接口是连接前后端及移动端的;不同端的工作进度不一样,需要对最开始出来的接口进行接口测试,优点:节约时间,缩短项目时间;提高工作效率;提高...

    接口测试基础入门

     

    一、什么是接口测试

    1.为什么做接口测试:

    接口是连接前后端及移动端的;不同端的工作进度不一样,需要对最开始出来的接口进行接口测试,优点:节约时间,缩短项目时间;提高工作效率;提高系统的健壮性。

    什么是接口测试

    接口的种类

     

    接口的分类

    post与get接口类型差异:

    参数提交方式:post请求的数据是放在WebForm里面的,以表单形式提交;get是通过地址栏提交数据的。

    请求数据大小:psot大,get小

    安全性:post以表单形式提交更安全,get相对不是很安全

    二、接口测试流程

    1.接口测试流程

    接口测试流程

    接口测试流程,测试用例是重点

    2.测试用例

    编写测试用例目的:

    理清思路,避免漏测;

    提高测试效率;

    跟进测试进度;

    测试记录;

    跟进重复性工作。

    用例设计分为:

    1)功能用例设计

     功能是否正常(用postman工具,输入请求参数及相关url后,看是否可以正常发送请求)

    功能是否按照接口文档实现(假设接口文档里面有两个参数;要看两个参数是否正确)

    2)逻辑业务用例设计

    是否依赖业务(假如是支付业务下单时候,要测试用户登录是否正确是否登录)

     3)安全

    cookie(没有登录直接调用和下单接口可以下单就是有问题的)

    header(如把header信息删除)

    唯一识别码

    4)异常测试用例设计

    参数异常:(关键字参数、参数为空、多或少参数、错误参数)

    数据异常(关键字数据、数据为空、长度不一致、错误数据、)

    三、接口测试工具及使用

    1.接口测试工具分类

    接口测试工具

    使用目的:提高工作效率

    选择测试工具切入点:时间、简易程度、业务复杂度、测试员能力

    2.接口测试分类工具介绍

    抓取接口工具:

    httpwache的缺点:只能在IE和firefox浏览器里面,其他浏览器不支持,看数据比较麻烦。

    wireshark:抓取经过电脑的所有请求,需要添加表达式来确定请求

    fiddler:轻量级的抓包,记录所有的http请求,相对比较清晰,而且可以进行接口测试。

    测试接口工具:

    loadrunner:性能测试基于http请求的。

    fiddler:在Composer中可以进行接口测试。

    soapui:接口测试,自动化测试。

    jmeter:性能测试工具,也可以做接口测试工具,也是基于HTTP请求做性能测试的。内存占用小,免费开源,轻巧方便、无需安装。

    postman: 最常用接口测试,是谷歌的一款接口测试插件,支持用例管理,支持不同请求类型、文件上传、响应验证、变量管理、环境参数管理等功能,可以批量运行,并支持用例导出、导入。

    接口测试三剑客:    fiddler 、postman、 Python自己开发

    自己开发接口测试程序原因:(工具没法满足需求时,业务限制,安全性)

    3.fiddler工具运用

    优点:独立可以直接抓取http请求;小巧,功能完善;快捷,启动就行;代理方便

    含义:fiddler是一个http协议调试工具,它能够记录并检查所有你的电脑和互联网之间的http通讯,设置断点,查看所有的“进出”Fiddler的数据。

    工作原理:在电脑端设置了一个代理,电脑发出的所有请求都要经过这个代理,代理收到后,再将这些请求发送给服务器,服务器处理后,再将处理后的信息返回给fiddler,最后fiddler再把数据返回给计算机。

     

    工作原理

    fiddler界面简介

    运用

    1.查看接口请求方式;查看请求数据,响应数据;接口返回状态(200返回成功);设置代理(移动端需要设置。在工具栏--【Tools】--【Fiddler options】--【Connections】输入端口号,并勾选后三个选项即可,之后在移动端进行设置即可)

    图示

    2.查看header和cookie图示

    查看header和cookie

    3.设置断点:

    设置断点

    4.添加筛选:

    添加筛选

    5.进行接口测试

    接口测试

    4.postman工具的运用

    postman组成介绍

    优点:可以自动反复测试一个需要携带header的post请求,并且对针对线上、测试环境同一个数据进行测试,并对实际结果作比较,以作为测试结果。

    配置不同环境步骤:

    【设置】--【添加】--【配置环境的url或者标识】

    图示1

    图示2

    图示3

    主要使用优点:

    1.能添加header和cookie。cookie的添加也是在header栏。

    2.多接口一起使用。 (可以配置测试环境和线上环境) 

    3.方便回归。(可以批量执行一个文件夹的所有接口)

    4.提高开发语言的技能水平。点击右边的code可以选择编程语言,生成对应语言的http请求的代码,方便学习。

    测试人员必经之路

    四、接口测试简单实践

    1.python-get接口实践

    postman这里可以生成代码

    python-get请求实现方式:

    1.定义接口地址

    2.定义请求数据

    3.整理请求数据

    4.发送数据并获取结果

    例子图示(上述例子使用的是python2)

    如果使用python3以上的版本的话则会报错:

      File "F:/MYSOFT/pyCharm/untitled/test.py", line 3, in <module>

        import urllib2

    ModuleNotFoundError: No module named 'urllib2'

    错误图示

    解决办法:

    在3以后用urllib.request代替urllib2

     用urllib.parse代替 urllib.urlencode

    修改后代码图示

    2.python-post接口实践

    图示

    如果大家对于学习Python有任何问题,学习方法,学习路线,如何学习有效率的问题,可以随时来咨询我,或者缺少系统学习资料的,我做这行年头比较久,自认为还是比较有经验的,可以帮助大家提出建设性建议,这是我的Python交流qun:785128166,有任何问题可以随时来咨询我。
     

    展开全文
  • 现在很多公司都有做接口测试的要求,这时很多之前一直做功能测试的伙伴们就比较措手不及了,所以就需要来学习接口测试了,今天就给大家讲解一下接口测试的知识。 一、接口测试的意义 1、什么是接口测试呢? 接口...

    现在很多公司都有做接口测试的要求,这时很多之前一直做功能测试的伙伴们就比较措手不及了,所以就需要来学习接口测试了,今天就给大家讲解一下接口测试的知识。

    一、接口测试的意义

    1、什么是接口测试呢?

    接口测试是测试系统组件间接口的一种测试,接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点联系,测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系等。

    2、那为什么要做接口测试呢?

    (1)举个例子来说,就举大家都很熟悉的淘宝网来说吧,在淘宝网不断发展历史过程中,最先出现的是功能测试和性能测试,然后才是自动化测试,但测试技术发展到今天,淘宝网的架构已经不再是以前传统的 MVC 结构了,整个系统架构不断向着分布式、业务中心化和高可用性的方向发展,淘宝网现今的系统架构纷繁复杂,系统间的各种接口庞杂繁多,传统的功能测试、性能测试和自动化测试已经难以满足系统发展的需求,这时就迫切需要一种更加有效实用且可以持续进行的测试方式来保证整个系统架构的质量。

    (2)接口测试就是在这种需求下应运而生,首先,随着系统复杂程度的不断上升,传统的测试方法测试成本急剧增加,测试效率且大幅下降(数据模型推算,底层的一个bug能够引发上层的 8 个左右bug,而且底层的bug很容易引起全网的宕机;相反的接口测试能够提供系统复杂度上升的情况下低成本高效率的解决方案。

    (3)其次接口测试不同于传统开发的单元测试,接口测试是站在用户的角度对系统接口进行全面高效持续的检测测试。

    (4)最后接口测试是自动化并且持续集成的,这也是为什么接口测试能够低成本高效率的根源。

    (5)总之接口测试是保证高复杂性系统质量的内在要求和低成本的经济利益的驱动作用下的最佳解决方案,接口测试是一个完整的体系,也包括功能测试、性能测试

    3)接口测试的适用范围

    (1)接口测试一般应用于多系统间交互开发,或者拥有多个子系统的应用系统开发的测试。 接口测试适用于为其他系统提供服务的底层框架系统和中心服务系统,主要测试这些系统对外部提供的接口,验证其正确性和稳定性。接口测试同样适用于一个上层系统中的服务层接口,越往上层,其测试的难度越大。接口测试在淘宝网的应用是一个自下而上的发展过程。

    (2)接口测试实施在多系统多平台的构架下,有着极为高效的成本收益比。接口测试天生为高复杂性的平台带来高效的缺陷检测和质量监督能力。平台越复杂,系统越庞大,做接口测试的效果就越明显。


    二、做接口测试的目的

    1、接口测试的战略方针

    (1)接口测试的核心战略在于:以保证系统的正确和稳定为核心,以持续集成为手段,提高测试效率,提升用户体验,降低产品研发成本为目的。

    (2)核心:保证系统的稳定质量管理的目标是保证系统的正确和稳定,接口测试作为软件质量管理的一部分也是能保证系统的正确和稳定的,更准确的说法是保证系统服务端的正确和稳定,一个系统的服务端,越接近底层,对系统的影响就越大,甚至有可能牵一发而动全身,服务端的一个缺陷可能会引起客户端的几个甚至十几个缺陷,更可怕的是服务端的缺陷有可能引起整个系统的崩溃,这对整个系统来说,损失将是不可估量的,因此服务端接口的质量将直接影响到系统的正确和稳定。

     

    (3)手段:持续集成什么是以持续集成为手段,关键在于“持续构建”、“业务”、“集成化”以及“文档体系”,我们需要让被测代码进行持续构建集成,我们需要用业务化的思维去考虑接口定义的合理性,我们需要从性能、安全的角度去思考代码的正确性,我们还需要从集成化的角度去甄别接口间数据传递的正确性,我们更需要确定我们的测试范围,也就是我们要测什么、不要测什么。

    (3)目的:提高测试效率,提升用户体验,降低产品研发成本,接口测试要为代码的编写保驾护航,增强开发人员和测试人员的自信,让隐含的BUG提前暴露出来,要让开发人员在第一时间修复 BUG,要让功能测试人员和性能测试人员在测试的时候更加顺手,最大限度减少底层 BUG 的出现数量,要让产品研发的流程更加敏捷,要缩短产品的研发周期,最后在产品上线以后,要让用户用得更加顺畅,同时也要让用户感觉产品服务零缺陷。

    (4)另外在这个战略过程中,我们需要几类资源作为支撑,下面做简单描述。 首先在这个战略中最重要的一点是要强调团队的重要性,特别是团队中需要有合理的人力资源配置,在这个团队中,需要全才,也需要专才,需要技术专家,也需要业务专家,既需要高效的执行者,也需要有效的管理者,任何人在这个团队中都可以发挥重要作用。

    (5)其次要充分重视文档的重要性,包括需求文档,开发技术方案,测试技术方案,测试用例文档等等,完善这些文档可以大大减少软件工程周期中各个团队配合障碍,也可以降低后期软件维护成本。

    (6)因此贯彻和落实接口测试的战略可以最大程度地提高软件质量的稳定性。

    2、接口测试的各阶段发展和目标

    简要讲述一个接口测试团队从建立初期到发展起来经历了哪些阶段,以及我们期望将来做成什么样子。

    (1)摸索阶段:一个全新的团队在成立之初一般都会经历一个比较长期的摸索过程,在这个阶段内我们会尝试不同的技术、框架和流程规范。直到在这些方面都找到了比较适合团队自身特点的方案了, 那么这个阶段的目标就算是达到了。

    (2)稳定提高阶段: 摸索阶段过后就应该会进入一个稳定提高期,经历了摸索阶段过后,团队的技术、框架和流程规范都应该有了一个基本的定型。这个时候团队的目标就是通过不同的项目实践来不断优化这些定型后的东西,最终总结出一套最佳方案出来。这套方案应该能够成为其它项目测试活动的参照,甚至是依据标准。这个时候呢,我们会发现所有的项目都在有序、统一、高效、可靠的进行。

    (3)扩大影响,组织共赢阶段 :那么到达上面这个目标之后是不是就是接口测试团队的终点呢?显然不是的,不要忘了,到目前为止,无论你在接口测试的工作上做得再好,那也仅仅只局限在接口测试本身上而已,我们不应该满足于此。通常来说接口测试团队在整个质量保证团队中占据了众多的核心技术人员。他们擅长使用各种技术来解决问题,甚至比开发团队做得还还要好。拥有如此多的技术资源, 如果我们不懂得合理利用,那真的是一种很大的浪费。在做好接口测试本身的基础上,我们还应该积极了解其它测试团队面临哪些问题,这些问题是不是可以利用技术手段来解决,如果可以,我们是否可以为他们实现一些实用的工具来帮助他们解决问题或者提高工作效率;我们自己的技术是否有需要分享给其它测试团队,甚至是整个软件团队,以帮助他们更好地完成工作。总之,我们应该思考如何更有效、更合理地利用接口测试团队的资源,来提高整个测试团队的业绩,这不仅会扩大接口测试团队本身的影响力,还让接口测试团队成为整个部门的核心竞争力,同时它还能创造了一个共赢的局面。

    (4)另一方面,在工作的流程上,各个测试角色是可以互补的,接口测试的设计、测试用例可以跟功能和性能测试共享,接口测试的报告可以作为功能测试的重要参考,让其了解底层都经历了哪些测试,哪里是 bug 的密集区,哪里相对安全一些。在功能测试工程师找到 bug 之后, 接口测试工程师可以用代码直接覆盖这个 bug 产生的代码,使这个 bug 永远不会出现第二次。 接口测试人员还可以直接绕过页面,对底层系统进行性能和压力的测试,在测试过程中各个角色之间的密切配合,也减少了测试的成本,提供系统全方位的质量保障。

    三、接口测试的工具

    接口测试的工具:apipost、jmeter

    apipost是国产的主要针对的接口测试和接口文档生成的工具

    jmeter怎是一个很好的性能测试工具,主要针对性能测试中的压力测试等

     

    展开全文
  • 现在很多公司都有做接口测试的要求,这时很多之前一直做功能测试的伙伴们就比较措手不及了,所以就需要来学习接口测试了,今天就给大家讲解一下接口测试的知识。 一、接口测试的意义 1、什么是接口测试呢? 接口测试...
  • ... Webservice也分get和post类型。(一般wsdl结尾,即webservice接口) Socket:少见。...Http接口测试工具: Jmeter Firefox插件httprequester 在线工具http://www.atool.org/httptest.php po...
  • 现在很多公司都有做接口测试的要求,这时很多之前一直做功能测试的伙伴们就比较措手不及了,所以就需要来学习接口测试了,今天就给大家讲解一下接口测试的知识。
  • 软件测试之Http接口测试 **写在前面:测试不是一种目的,而是一种保证软件质量的手段** 根据工作中对Http接口测试的经验,粗略总结了一下Http接口测试的思路,如下: PS:对于接口返回值的内容验证,也可以...
  • ## 软件测试之接口面试题1 1. 请问你们公司是如何做接口测试的? 答: 接口测试实际跟一般测试不同就是测试用例的设计部分。 ①获取接口规范; ②设计接口测试功能用例(主要从用户角度出发看接口能否实现业务需求...
  • 1.软件测试之接口自动化测试(一):关于接口 关于接口 “接口”应该是大家平日工作中听到的一个高频词,开发童鞋经常挂在嘴边:“老铁,来来来……今天程序改了个接口,帮我回归下”,又或者有时候需要制造数据不...
  • 软件测试之App测试-接口测试

    千次阅读 2018-03-08 12:01:38
    接口测试 服务端一般会提供JSON格式的数据给客户端,所以我们在服务端需要进行接口测试,确保服务端提供的接口并转换的JSON内容正确,对分支、异常流有相应的返回值。此块测试可以采用itest框架进行测试。最方便的...
  • 掌握这些课程知识,你的软件测试之路,将越走越远!课程特点:理论实操:全程理论结合实操演练,杜绝纯理论般的纸上谈兵高效精讲:每个知识点10-20分钟左右精讲,最少的时间换最高的学习效率简单易学:从0到1,适合...
  • 软件测试之接口自动化测试(二):关于HTTP 前言 关于HTTP这个主题,可能大家马上就会想到HTTP协议,确实今天要讲的也就是HTTP协议,因为我们面对的接口测试,大部分其实是基于HTTP协议的Web接口,所以今天就想将...
  • 前面的系列文章已经将接口(API)自动化测试的理论和基础请求框架、数据验证等知识面介绍完了,这就好比已经给你...通常接口测试的关注点可以包含下面几个部分:1、接口请求参数部分:参数部分其实就对应用户环境的各种
  • 软件测试之接口自动化测试(四):Helloworld入门 一、准备工作 需要做接口测试,肯定得需要一个已调通的接口或服务,在这里我们暂时就只考虑HTTP的接口吧。由于是练习,大家可以在自己的应用系统中通过Fiddler...
  • 软件测试之接口自动化测试(三):关于URL 关于URL 说起URL,大家第一反应可能是这不就是一个地址吗,还能有什么门道? URL是Uniform Resource Locator的缩写,称为统一资源定位符。URL正是使用web浏览器访问web...
  • 接收接口文档 -> 编写接口用例 -> 编写脚本/调试 -> 进行持续集成 2.用例设计 2.1 通过性验证 a.覆盖所有必选参数 b.组合 非必选参数 c.参数默认值 2.2 反向验证 a.参数格式:包含特殊字符 b.参数为空:空...
  • 三:接口测试概念【所谓接口测试就是通过测试不同情况下的入参与相应的出参信息来判断接口是否符合或满足相应的功能性、安全性要求】 四:接口文档 主要有什么内容 主机路径 、接口名称、接口路径、请求方式、...
  • 接口测试常见测试点 1.做接口测试先从开发获取API接口文档,如果没有请下载相关web抓包工具如fiddler进行抓包自己写接口文档。 运用范围 a) 系统与系统之间的调用(如分享、公用接口); b) 上层服务对下层服务的...
  • 我们先来说一个大家做接口测试或UI自动化测试的痛点,很多时候要进入应用或接口都需要登录验证,这是我们展开测试的一个很头疼的问题,在前面的文章中好像也留下了这个坑,也有童鞋留言在问这方面的问题,另外刚好...
  • 之前的篇幅介绍了soapUI测试接口, 因为功能丰富, 操作简单, 可以参数化而深受测试小伙伴的喜欢, 今天再给大家介绍一款利器, Jmeter是Apache组织下的免费工具, 我使用的是Mac 系统 , Jmeter3.1版本. 自定义变量的意义...
  • 接口自动化测试的难点就在结果验证上面,接口请求后返回的响应结果各式各样,常见的有text、JSON、XML、binary、自定义格式等,对于这些格式,我们只需关注text、JSON和XML,text比较简单,XML可以有办法转成JSON,...
  • 前面写了一个HTTP的请求demo,使用的是GET请求方式,然而实际应用中...GET请求方式通常只需要有url(path+参数)就行,对于某些接口可能还需要设置header,所以在方法中我们都要支持这些设置了。下面我就用apache下...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,336
精华内容 534
关键字:

软件测试之接口测试