tag 标签: postman

相关博文
  • 热度 4
    2022-9-15 16:12
    704 次阅读|
    0 个评论
    前言:之前做一个京东联盟的自动化脚本,好多人不理解为什么,这次做淘宝的自动化签名,并讲解一下实现细节,带你了解前置脚本,后置脚本的用法。 自动化原理 个人观点 自动化就像流水线一样,通过解析固定的规则,来达到自动化。 前置和后置脚本的区别(它们的功能就如同名字一样) 前置脚本:在请求发送之前,你可以通过脚本来做某些事情,值得注意的是 变量 是在前置脚本后面才执行的,所有有些问题可能不是你问题。 前置脚本:在请求响应之前,你可以通过脚本来做某些事情。 淘宝联盟接入文档 调用入口 调用API的服务URL地址,开放平台目前提供了2个环境给ISV使用:正式环境,海外环境。 调用环境 服务地址 正式环境 https://gw.api.taobao.com/router/rest 海外环境 https://api.taobao.com/router/rest 公共参数 调用任何一个API都必须传入的参数,目前支持的公共参数有: 参数名称 参数类型 是否必须 参数描述 method String 是 具体API接口名称,例:taobao.item.seller.get app_key String 是 TOP分配给应用的AppKey。例:12345678 session String 可选 用户授权成功后,平台颁发给应用的授权session,详细介绍请点击这里。当此API文档的标签上注明:“需要授权”,则此参数必传;“不需要授权”,则此参数不需要传。 timestamp String 是 时间戳,格式为yyyy-MM-dd HH:mm:ss,时区为GMT+8,例如:2016-01-01 12:00:00。淘宝API服务端允许客户端请求最大时间误差为10分钟。 v String 是 API协议版本,可选值:2.0 sign_method String 是 签名的摘要算法,可选值为:hmac,md5,hmac-sha256。 sign String 是 API输入参数签名结果,签名算法参照下面的介绍。 format String 否 返回内容响应格式。不传默认为xml格式,可选值:xml,json。 simplify Boolean 否 是否采用精简JSON返回格式,仅当format=json时有效,可选值:false,true,不传为false。 签名算法 为了防止API调用过程中被黑客恶意篡改,调用任何一个API都需要携带签名,TOP服务端会根据请求参数,对签名进行验证,签名不合法的请求将会被拒绝。TOP目 前支持的签名算法有三种:MD5(sign_method=md5),HMAC_MD5(sign_method=hmac),HMAC_SHA256(sign_method=hmac-sha256),签名大体过程如下: 对所有API请求参数(包括公共参数和业务参数,但除去sign参数和byte 类型参数)发起请求,如: http://gw.api.taobao.com/router/rest?method=taobao.item.seller.get&app_key=12345678&session=test×tamp=2016-01-01+12%3A00%3A00&format=json&v=2.0&sign_method=md5&fields=num_iid%2Ctitle%2Cnick%2Cprice%2Cnum&num_iid=11223344&sign=66987CB115214E59E6EC978214934FB8 配置环境参数设置全局变量 AppKey和AppSecret ​ 编辑 设置相关环境下的服务器地址 ​ 编辑 开始分析参数指定规则 通过调用示例我们可以知道所有的参数都在url中,也就是说参数存在于Query参数中。 公共参数必选有:method ,app_key ,timestamp ,v ,sign_method ,sign 。 app_key:可以使用全局变量 。 v:可以固定为 2.0 sign_method:可以固定:hmac,md5,hmac-sha256 其中一个 此时需要处理的公共参数有:method,timestamp ,sign 。 method:使用正常Query参数 timestamp :通过脚本处理 sign :通过脚本处理 业务参数使用body参数中来处理。 添加接口 这里以:淘宝客-公用-淘口令生成,来作为示例。 业务请求和响应参数 ​ 编辑 添加Query参数 ​ 编辑 添加Body参数和响应参数 ​ 编辑 使用前置脚本处理 { pm.request.body.urlencoded.add({ key: key, value: value }) }) //添加签名参数 pm.request.body.urlencoded.add({ key: "sign", value: signature(params) }) 可以去官网下载操作一下: apifox.cn
  • 热度 4
    2022-5-6 17:48
    721 次阅读|
    0 个评论
    ​ 前言 一大早测试部的老大就召集我们开了个会——原因是我们组负责的业务除了个线上漏测,用户的投诉跟雪花似的纷至杳来。 公司门口那个巨大的显示屏就在那轮播着用户反馈,好几屏都是用户在吐槽这个bug。 没啥可说的,该背的锅还是要背的,那个漏测也不算冤,测试同事造不出那个异常场景,心中侥幸,觉得不至于异常会导致客户端出现啥问题。偏偏它就出了问题! 后来组里开会复盘了下,决定以后在测试环节里引入mock测试工具协助测试。 主要为了解决我们测试过程中遇到的以下问题: a.代码存在多个接口依赖的问题,造出测试场景费时费力,且有时由于代码设计和业务隔离的问题无法造出来 b.涉及到外部第三方资源,无法调试外部代码内部情况,无法造出特定场景 c.后台开发还没有完成,由于进度赶,需要提前测试前端问业务 mock测试是个啥 mock这个英文单词的意思是模拟,在测试流程中指的是对不容易构造或不容易获取的对象,用一个虚拟的对象来创建以便测试。大致可分为两类: 客户端 Mock:在被测服务内部工作,直接拦截被测服务的 API 请求方法,直接从方法内部返回预定义的 Mock 响应。 服务端 Mock:在被测服务外部工作,作为 HTTP 服务器接收被测服务发送的 API 请求,并返回预定义的 Mock 响应。 到底要怎么搞 1.直接写代码 python 中有个mock模块,支持用mock对象替换掉指定的python对象,达到模拟返回值的效果; Java 中也有jar包——mock server moco,它支持指定配置文件就可开启一个http服务器,支持动态加载。 写代码的优点在于可以完全服务于你所在项目的需求,缺点也很明显,一个迭代版本的需求往往给到的测试时间只有几天,没有时间给测试童鞋写代码来mock。 何况代码也不能保证一次性跑得通,往往调试也要花去很多的时间。 我的想法是——“不要重复造轮子”。市面上其实不乏好些免费的mock工具可以用,只要能够满足我们的目的——可模拟多种异常测试场景,mock配置快速简单。 2.使用mock工具 (1)mock工具的选用原则 接口管理方面: 接口测试一般会涉及数十个甚至上百个接口,这个接口后面还涉及到重构或者版本迭代的问题,因此mock工具需要具备接口管理的功能,能够管理多个版本的接口数据,不要一堆文件胡乱堆着无法处理。 数据构造方面: 接口返回的数据类型和测试数据需要能够做到尽可能少的配置工具和高度仿真,以达到在真实业务场景中测试的效果 场景模拟方面: 能模拟各种异常返回,以及由于接口依赖和资源隔离,业务隔离等原因在测试环境内无法构造出来的场景。 (2)场景Mock工具推荐 a.Fiddler 工具简介 :Web调试工具, 它能记录所有客户端和服务器的http和https请求。允许你监视、设置断点、甚至修改输入输出数据。 Fiddler在测试中主要用于拦截接口,篡改接口返回值,来对前端进行调试。 但拦截接口需要设置正则表达式,一个个接口捕捉并修改返回值,对于接口数量少,只需要用到少量接口的测试需求,这个工具还是蛮好用的。 但如果是频繁迭代的需求,一个需求里有上百个接口,那么用Fiddler的效率则不高。 另一个问题是接口返回的数据需要自己手工填入,简单数据还行,复杂数据如base64编码,哈希值等等,那么构造起来非常费时费力。 b.Apifox 工具简介 :Apifox提供了接口设计,调试,测试,管理等功能。我们这里只需要用到它的mock功能。 零配置mock Apifox里面预先设置了常见数据类型的mock规则,不需要用户自己配置,直接选择就可以用,目前已经支持非常多常用的数据类型,包括头像,手机号,邮箱,url,地址等,下图是目前无须配置可直接使用的数据类型: ​ 如何构造数据 : 在接口设计tab,直接在返回参数的mock选项框里选择与参数匹配的数据类型 ​ ​ 自定义mock规则 如果你的项目里需要用到不怎么常见的数据类型,可以自定义mock规则。 ​ response 参数里直接调用改mock规则。 构造异常测试场景 为了提高测试覆盖率,测试童鞋需要验证当接口返回 异常时客户端是否有容错机制,会不会出现崩溃。 这可以利用mock功能来协助测试。 ​ 接口管理 一个测试需求/项目常常包含多个测试接口,在Apifox里面可以以项目的形式,通过不同层级的文件夹来对接口进行管理。 ​ 总结 造测试数据是每个测试童鞋无法避免的一项事务,如果能借助工具,快速地构造测试场景进行用例测试,就能够极大地提高我们的测试效率。 Apifox 官网: apifox.cn ​