• 1
  • 1
分享

http接口工具有很多如:postman、jmeter、soupUI、Java+httpclient、robotframework+httplibrary等

1、什么是接口

接口就是内部模块对模块,外部系统对其他服务提供的一种可调用或者连接的能力的标准

接口的种类和分类:webservice和http api接口

1)webservice接口是走soap协议通过http传输,请求报文和返回报文都是xm格式,可以通过jme、soapui工具进行测试;

2)http api接口是走http协议通过路径来区分调用的方法,请求报文格式都是key-value形式,返回报文一般是json串,常见的请求方式有get、post请求等;

1.什么是接口测试

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

2.接口测试流程

  • 需求讨论,需求评审,场景设计,编写用列,准备数据,执行测试

  • 需求评审,熟悉业务和需求

  • 开发提供接口文档(必须提供接口说明、url、请求方法、请求参数、参数类型、请求参数说明及返回参数说明)

  • 编写接口测试用例

  • 进行用例评审

  • 提测后开始测试

  • 提交测试报告

3.http协议get和post请求方式区别

get请求:从指定的服务器中获取数据,直接在浏览器里输入就可以获取信息

post的请求:提交数据给指定的服务器处理,可以向服务器发送修改请求,从而修改服务器的,需要借助测试工具;

2、做接口测试如何分析是前段还是后端的问题?

如果发送的数据是正确的,但是后台反馈的数据是不符合需求的,那就是后台的问题;如果前端没有请求接口,或者请求的时候发送数据与需求不符,那这个时候就是前端的问题了

3、session和cookies区别?

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

  2. cookie不是很安全,别人可以分析存放在本地的COOKIE并进行COOKIE欺骗,考虑到安全应当使用session。

  3. session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能考虑到减轻服务器性能方面,应当使用COOKIE。

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

  5. 所以个人建议:

将登陆信息等重要信息存放为SESSION

其他信息如果需要保留,可以放在COOKIE中

4、怎么抓取HTTPS协议?

使用Fiddler抓取HTTPS协议主要由以下几步进行:

第一步,Fiddler截获客户端发送给服务器的HTTPS请求,Fiddler伪装成客户端向服务器发送请求进行握手 。

第二步,服务器发回相应,Fiddler获取到服务器的CA证书, 用根证书(这里的根证书是CA认证中心给自己颁发的证书)公钥进行解密, 验证服务器数据签名, 获取到服务器CA证书公钥。然后Fiddler伪造自己的CA证书(这里的CA证书,也是根证书,只不过是Fiddler伪造的根证书), 冒充服务器证书传递给客户端浏览器。

第三步,与普通过程中客户端的操作相同,客户端根据返回的数据进行证书校验、生成密码Pre_master、用Fiddler伪造的证书公钥加密,并生成HTTPS通信用的对称密钥enc_key。

第四步,客户端将重要信息传递给服务器, 又被Fiddler截获。Fiddler将截获的密文用自己伪造证书的私钥解开, 获得并计算得到HTTPS通信用的对称密钥enc_key。Fiddler将对称密钥用服务器证书公钥加密传递给服务器。

第五步,与普通过程中服务器端的操作相同,服务器用私钥解开后建立信任,然后再发送加密的握手消息给客户端。

第六步,Fiddler截获服务器发送的密文, 用对称密钥解开, 再用自己伪造证书的私钥加密传给客户端。

第七步,客户端拿到加密信息后,用公钥解开,验证HASH。握手过程正式完成,客户端与服务器端就这样建立了”信任“。

在之后的正常加密通信过程中,Fiddler如何在服务器与客户端之间充当第三者呢?

服务器—>客户端:Fiddler接收到服务器发送的密文, 用对称密钥解开, 获得服务器发送的明文。再次加密, 发送给客户端。

客户端—>服务端:客户端用对称密钥加密,被Fiddler截获后,解密获得明文。再次加密,发送给服务器端。由于Fiddler一直拥有通信用对称密钥enc_key, 所以在整个HTTPS通信过程中信息对其透明。

5、HTTP和HTTPS协议区别?实现机有什么不同?

  1. http是超文本传输协议,信息是明文传输;https是具有安全性的ssl加密传输协议。

  2. http与https使用的是不同的连接方式,端口也一样,http默认端口是80;https默认端口是443;

  3. http连接状态比较简单,是无状态的;https协议是由ssl+http协议组成的可进行加密传输、身份认证的网络协议。 

6、在测试接口中怎么知道请求成功还是失败?

根据接口请求时接口的返回状态码来判断,状态码以4或5开头就可以视为请求失败

7、说出请求接口中常见的返回状态码?

1xx - 信息提示

2xx - 成功

3xx - 重定向

4xx - 客户端错误

5xx - 服务器错误(200.201.204.304.400.401.403.404.410.500.503)

8、怎么设计接口测试用例?

目的:测试接口的正确性和稳定性; 

原理:模拟客户端向服务器发送请求报文,服务器接收请求报文后对相应的报文做处理并向客户端返回应答,客户端接收应答的过程; 

重点:检查数据的交换,传递和控制管理过程,还包括处理的次数; 

核心:持续集成是接口测试的核心; 

优点:为高复杂性的平台带来高效的缺陷监测和质量监督能力,平台越复杂,系统越庞大,接口测试的效果越明显(提高测试效率,提升用户体验,降低研发成本); 

用例设计重点:通常情况下主要测试最外层的两类接口:数据进入系统接口(调用外部系统的参数为本系统使用)和数据流出系统接口(验证系统处理后的数据是否正常); 

PS:设计用例时还需要注意外部接口提供给使用这些接口的外部用户什么功能,外部用户真正需要什么功能;

9、为什么要做接口测试?

因为不同端(前段,后端)的工作进度不一样,所以我们要针对最开始出来的接口,以及需要调用其他公司的(银行,支付宝,微信,qq等)

一些接口进行接口测试及验证数据,从安全层面来说,只依赖前端进行限制已经完全不能满足系统的安全要求(绕过前面实在太容易),需要后端同样进行控制,在这种情况下就需要从接口层面进行验证。前后端传输、日志打印等信息是否加密传输也是需要验证的,特别是涉及到用户的隐私信息,如身份证,银行卡等。


作者:仅仅
链接:https://zhuanlan.zhihu.com/p/259184946

  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          •   51Testing软件测试网正在收集测试行业问卷结果,如果你也想为测试行业的前景助力,就点击下方的链接提交答案吧,还有精美礼品等你拿(测试课程五选二)。链接:http://vote.51testing.com/  测试团队在项目或版本测试完成后,需要对本次项目或版本所发现的缺陷做统计分析,在分析的过程中,总结项目或版本在哪些方面可以进行改进,为下个项目或版本的管理,做更好的管理和风险预防。  分析缺陷一般从以下角度来进行:  以某个项目为例,此项目共涉及6个关联系统,整个项目周期,发现的缺陷数共508个(缺陷数已按等级进行换算)。下面从各方面分析缺陷的分布情况。  从缺陷的根本原因上分析 ...
            0 0 1827
            分享
          •   作为一名Tester,无论是面试还是工作,我们都常常会遇到该问题,毕竟现在大部分接手的项目都是中小型的项目,很多又是生疏行业的系统,所以这个问题就会常常伴随我们,那么遇到这个问题该怎么办呢,现在我们就分下面6点来讨论一下。  1.了解测试任务  我看网上有些博主一上来就让大家看资料了解系统,就是下面讲的第二点,当然这样做也行,但是会导致效率低下,就像我们上学时做阅读理解一样,最正确的做法应该是带着问题去看资料,所以我们应该一上来明确测试任务,然后带着这些测试任务的问题去看资料。  2.从现有资料中获取信息  明确测试任务后,就可以问研发团队要该项目的所有资料了,这里面主要包括产品需求文档(...
            0 0 335
            分享
          • 北京时间9月20日消息,非营利组织“全球四天工作制”(4 Day Week Global)实施的试点计划显示,四天工作制是可行的。“全球四天工作制”周二公布的一项调查发现,在70多家实行四天工作制的英国公司中,78%的领导者表示他们实现了顺利或“无缝”过渡。只有2%的人认为它具有挑战性。大多数人(88%)表示,四天工作制有效。目前,这项为期六个月的试点计划正在英国、美国、新西兰、澳大利亚、爱尔兰和加拿大开展,涵盖了180多家公司。在这项计划中,雇主通常会转向四天、32小时的工作制(根据职位和行业的不同会有区别),但不会降薪。在英国的试点中,在中途接受调查的公司总计拥有3300名员工。该计划与“...
            0 0 863
            分享
          •   一、Jmeter简介  1 概述  jmeter是一个软件,使负载测试或业绩为导向的业务(功能)测试不同的协议或技术。 它是 Apache 软件基金会的Stefano Mazzocchi JMeter 最初开发的。 它主要对 Apache JServ(现在称为如 Apache Tomcat 项目)的性能进行测试。 Apache 后来重新设计 JMeter 增强的图形用户界面和添加功能测试能力。  以下是一些 JMeter 的特点:  · 它是免费的、开放源码软件。  · 它具有简单,直观的图形用户界面。  JMeter 中负载和性能测试许多不同的服务器类型:网站 - -...
            0 0 1295
            分享
          • 最近在阅读《高性能之道》这本书,其中有一个小标题让我突然想到一个旧话题:拓展自己的边界。弱化边界感。在我之前读过的技术类书籍中,往往更多偏重于不同团队之间的协作配合。而在这本书中我读到了更多关于个人成长方面的。如果你在在一个岗位工作时间变长之后,在经过稳定期之后就会遇到工作瓶颈。如何能突破这种瓶颈限制呢,作者提出一个方向:突破边界。# 拓展边界的重要性在IT工作中,拓展自己的边界绝对是非常重要的。作为一名互联网工作者,我们常常面对着快速发展的技术和变化的行业趋势。如果我们只停留在自己熟悉的领域,不积极主动地学习和尝试新的知识和技能,很可能会被时代抛在身后,错失许多机会。拓展自己的边界可以带来许...
            0 0 563
            分享
      • 51testing软件测试圈微信