• 0
  • 1
分享

01 通用的项目架构

1.png

02 什么是接口

接口:服务端程序对外提供的一种统一的访问方式,通常采用HTTP协议,通过不同的url,不同的请求类型(GET、POST),不同的参数,来执行不同的业务逻辑。

客户端大多数的业务操作,都是需要调用服务端接口来获取一些数据,或者触发某些业务,然后客户端拿到接口返回的数据后,会根据数据内容做不同的处理和展示。

03 为什么要做接口测试

A、在公司里,客户端和服务端通常是由不同的团队开发的,在项目开发过程中,客户端和服务端开发的进度不一致,比如服务端先开发完了,这个时候可以先对服务端进行接口测试,确保服务端逻辑和返 回数据是正确的,然后再测试客户端。或者是某些测试部门,专门测试服务端开发团队,因此,他们的测试对象就是接口。

B、在测试某些业务时,不能仅仅通过前端来测试,比如用户注册,前端限制了用户名不能为空,但是有些人可能通过工具绕过前端直接调用服务端接口,如果服务端没有做相关的逻辑判断,就会造成数据 错误。包括接口数据传输过程中是否对关键信息加密等。所以必须针对服务端接口单独做测试。

C、在开发提测后,可以先通过工具把服务端的接口测试跑一遍,确保接口测试用例都是通过的,快速判断服务端接口是否符合预期。然后再通过UI界面进行测试。否则接口有bug,前端页面必定有bug。

04 接口测试工具和流程

常见的HTTP接口测试工具有Jmeter、Postman、SoupUI等。企业里用的比较多的是Jmeter。

Jmeter是一款开源、免费的接口测试工具,它可以对接口的功能、性能进行测试。还可以实现接口自动化。

接口测试流程:

和普通的web测试一样,也是先进行需求分析、测试用例编写、执行测试、提交bug、回归测试、提交 测试报告等。

05 接口测试的关注点

1、输入

输入主要是指接口的入参,我们平常的测试中,会先考虑正常的入参,以及异常的入参,异常情况包括:参数异常和数据异常,用例设计这块使用较多的是等价类划分和边界值分析

正常的入参

正常的入参很好理解,就是根据接口设计文档的入参标准,输入正常的参数,响应按接口设计文档的约 定条件正常返回

参数异常

参数异常包括:参数为空,多参或少参,错误的参数

数据异常

数据异常:数据类型错误、非空参数为空,长度不符合设计,不在范围内的数据,不合法的成员,特殊 字符或敏感字符,存在关联关系的参数数据异常等

2、业务逻辑

和基于UI的功能测试一样,接口测试也需要了解接口背后的业务逻辑,针对业务流程的处理逻辑,我们 可以从入参的限制条件、事件的操作对象、业务的状态转换等不同维度来考虑

限制条件分析

① 数值的限制:字典,等级,行业相关限制,金额限制,分数限制等

② 状态的限制:有效|无效,在线|离线,拉黑|洗白等

③ 关系的限制:存在或不存在,绑定或解绑等

④ 权限的限制:管理员,普通用户等

对象分析

对象分析主要是对合法和不合法的对象进行操作,比如银行卡用户对卡进行充值,则可能存在:用户A使用非用户A的卡充值;用户A使用自己的卡进行充值,卡已过有效期;用户A使用自己的卡进行充值, 卡为黑名单或挂失等。

状态转换的分析

比如支付类业务,先支付成功,撤单后会退款,再次支付如果支付未成功,则是支付失败,状态之间的 切换是否正常,未按正常业务顺利进行操作时,状态怎么显示,是否可控,是否出现异常状态,空状态 业务怎么处理等

时序分析

一些复杂的活动中,一个活动是由一系列的动作按照指定顺序进行,这些动作形成一个动作流,是有按照这个顺序依次执行,才能等到预期的结果,那么在执行过程中发生的其他分支动作程序会作何处理?

3、输出

在考虑异常时,通常我们都会想到正常情况,无效的情况,但是不一定能覆盖所有错误码,而接口定义返回的错误码可以帮助我们补充这一部分的用例,比如网络异常,无效的规则,无效的参数,无效的业务ID,无效的任务,服务器异常等,把errorcode的值都补充上去可以设计更多的用例

这种根据输出进行设计用例,可以发现前后端是否正常输出结果,提示是否友好,提示是否出现敏感信息等

4、数据库操作

业务数据入库是否正常,是否有重复数据入库,是否出现乱码

数据更新是否正常,尤其是时间类字段,时间是否为24小时制的格式

表中各个字段是否符合预期

5、安全性

敏感信息是否加密(如用户名、银行账号,密码,转账金额)

6、性能

接口最大支持多少并发数

接口每秒能处理多少次业务(TPS)

接口的平均响应时间(RT

接口对服务器资源的消耗(CPU、内存、网络、磁盘)

7、兼容性

接口测试不需要考虑客户端的兼容性,主要是数据的兼容性。比如对于老接口的历史数据是否兼容,用 新接口去处理老的数据,是否能正常处理。

8、其他

幂等性:就是用户对于同一操作发起的一次请求或者多次请求的结果是一致的,不会因为多次点击而产生了副作用。

举个最简单的例子:

那就是支付,用户购买商品后支付,支付扣款成功,但是返回结果的时候网络异 常,此时钱已经扣了,用户再次点击按钮,此时系统应该拒绝支付,并且提示“不能重复支付”。相当于 第二次支付不会产生任何作用。在做接口测试时,对于某些有幂等性要求的接口,需要针对幂等进行测 试。

通常可以采用Jmeter连续调用2次接口进行支付、提交等操作,来测试幂等性。

 

作者:码同学软件测试

原文链接:https://blog.csdn.net/Testfan_zhou/article/details/123872124

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

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          •   昨日晚间 36 氪报道称,暴雪与国内多家游戏厂商洽谈了“国服回归”事宜,最终选择与网易重新牵手合作。这一消息瞬间在游戏圈引发轰动,但网易和暴雪都没有回应。  据长期关注暴雪游戏的博主 @雪暴君 消息,从 12 月 20 日开始,《魔兽世界》社区已重新在“网易大神”陆续更新相关“蓝贴”内容,更新了包括 2024 年魔兽世界线路图,最新资料片地心之战等资讯。此前,社区圈子中关于网易停止代理《魔兽世界》的通知已经搜索不到。  查看发现,大部分帖子都是来自一个名叫“雷霆崖上牛头人”的用户,该用户并没有社区管理人员认证,目前尚不清楚是否为网易官方人员。  不过有趣的是,该用户昨晚也转发了网易、暴雪“...
            0 0 960
            分享
          •   用例设计是测试工程师的日常工作之一,也是基本技能,今天,从实际工作的角度,跟大家分享下快速设计用例的7个小技巧:  1. 根据需求,先拆分大的功能点,作为主用例。例如,常见的增删改查,就属于大的功能点,可以作为主用例。  2. 使用等价类划分,按分类设计用例,基本分类可以从正面场景和负面场景入手。例如,测试创建可分为创建成功和创建失败2种场景,可分别设计用例。  3. 善用边界值,可结合等价类使用。测试经验告诉我们,测试有时会涉及大量数据,遍历所有数据效率较低,如果是手工执行,更难以实现覆盖所有数据,更有效率的做法是,先划分等价类,再从等价类中选择部分参数测试。  边界值是等价类所有可选参...
            0 0 889
            分享
          • 列表数据在web后台是非常常见的展示方式,针对列表相关整理一个模板:主要关注:列表展示、搜索和筛选数据、数据详情、数据导出、数据导入操作按钮场景关注:订单来源,订单状态切换数据关注:超过一屏的数据展示是否重复,数据量较多时导出和导入速度详细内容如下:—————————————————————————————————————————————【订单列表】订单字段:订单编号、客户名称(公司名称)、手机号(超管)、订单金额、状态、下单时间、操作列表排序:按照下单时间倒序排列订单页码,默认显示20条/页,可以切换为10条/页,20条/页,50条/页,100条/页订单编号生成规则:B1+yyyymmdd+...
            1 1 10805
            分享
          • 光明网乌镇11月9日电(记者孙满桃)在今天下午举行的2022年世界互联网大会乌镇峰会网络法治论坛上,《反电信网络诈骗倡议》(以下简称“倡议”)发布,为建设清朗网络空间贡献力量。随着通讯网络技术的快速发展与应用,电信网络诈骗活动呈高发频发势头,严重侵犯人民群众财产安全,严重侵蚀社会诚信根基,严重破坏社会和谐稳定。为此,倡议提出五点建议:积极参与,构建共建共治新格局;自律自觉,筑牢网络安全新基准;惩防并举,实现网络诚信新高度;提升素养,推进网络伦理新建设;加大宣传,培育全民反诈新意识。其中,倡议指出,要履行主体责任,加强自我约束,促进行业自律,加快数字法治体系建设,强化数据安全和个人信息保护,共筑...
            0 0 869
            分享
          •   12 月 20 日消息,上市已经有 74 年历史的日本科技巨头东芝将于当地时间周三从日本东京证券交易所退市。作为日本最大的品牌之一,东芝此前十几年都面临动荡和各种丑闻。目前公司未来能走向何方还有待商榷。  东芝将由私募股权公司 JIP 为首的一群投资者私有化,参与东芝私有化的投资者还包括金融服务公司欧力士、公用事业公司中部电力和芯片制造商罗姆半导体。  东芝这次私有化的规模达到 140 亿美元。虽然尚不清楚新东家领导下的东芝最终会以何种形式出现,但继续留任的公司首席执行官岛田太郎预计将专注于高利润的数字服务。  JIP 对岛田太郎的支持打乱了早先与一家政府支持基金合作的计划。一些业内人士表...
            0 0 943
            分享
      • 51testing软件测试圈微信