接口测试到底怎么做,看完这篇文章彻底搞清楚【淘宝/京东接口测试】

01

通用的项目架构

02

什么是接口

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

  1. 此API目前支持以下基本接口:

    • item_get 获得淘宝商品详情
    • item_get_pro 获得淘宝商品详情高级版
    • item_review 获得淘宝商品评论
    • item_fee 获得淘宝商品快递费用
    • item_password 获得淘口令真实url
    • item_list_updown 批量获得淘宝商品上下架时间
    • seller_info 获得淘宝店铺详情
    • item_search 按关键字搜索淘宝商品
    • item_search_tmall 按关键字搜索天猫商品
    • item_search_pro 高级关键字搜索淘宝商品
    • item_search_img 按图搜索淘宝商品(拍立淘)
    • item_search_shop 获得店铺的所有商品
    • item_search_seller 搜索店铺列表
    • item_search_guang 爱逛街
    • item_search_suggest 获得搜索词推荐
    • item_search_jupage 天天特价
    • item_search_coupon 优惠券查询
    • cat_get 获得淘宝分类详情
    • item_cat_get 获得淘宝商品类目
    • item_search_samestyle 搜索同款的商品
    • item_search_similar 搜索相似的商品
    • item_sku 获取sku详细信息
    • item_recommend 获取推荐商品列表
    • brand_cat 获取品牌分类列表
    • brand_cat_top 获取分类推荐品牌列表
    • brand_cat_list 得到指定分类的品牌列表
    • brand_keyword_list 得到指定关键词的品牌列表
    • brand_info 得到品牌相关信息
    • brand_product_list 得到指定品牌的产品
    • custom 自定义API操作
    • buyer_cart_add 添加到购物车
    • buyer_cart_remove 删除购物车商品
    • buyer_cart_clear 清空购物车
    • buyer_cart_list 获取购物车的商品列表
    • buyer_cart_order 将购物车商品保存为订单
    • buyer_order_list 获取购买到的商品订单列表
    • buyer_order_detail 获取购买到的商品订单详情
    • buyer_order_express 获取购买到的商品订单物流
    • buyer_order_message 获取购买到的订单买家留言
    • buyer_address_list 收货地址列表
    • buyer_address_clear 清除收货地址
    • buyer_address_remove 删除收货地址
    • buyer_address_modify 修改收货地址
    • buyer_address_add 添加收货地址
    • buyer_info 买家信息
    • buyer_token 买家token
    • seller_order_list 获取卖出的商品订单列表
    • seller_order_detail 获取卖出的商品订单详情
    • seller_order_close 卖家关闭一笔交易
    • seller_order_message 获取或修改卖出去的订单备注
    • seller_auction_list 商品可上下架商品列表
    • seller_auction 商品上下架
    • seller_item_add 商品上传
    • upload_img 上传图片到淘宝
    • img2text 图片识别商品接口
    • tbk_order_query 淘宝客订单查询
    • item_list_weight 批量获取商品信息
    • item_history_price 获取商品历史价格信息
    • item_get_app 获得淘宝app商品详情原数据

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

03

为什么要做接口测试

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

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

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

04

接口测试工具和流程

接口测试流程:

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

05

接口测试的关注点

1、输入

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

  • 正常的入参

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

  • 参数异常

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

  • 数据异常

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

2、业务逻辑

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

  • 限制条件分析

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

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

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

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

  • 对象分析

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

  • 状态转换的分析

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

  • 时序分析

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

3、输出

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

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

4、数据库操作

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

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

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

5、安全性

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

6、性能

  • 接口最大支持多少并发数

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

  • 接口的平均响应时间(RT)

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

7、兼容性

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

8、其他

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值