接口自动化思路

1.单接口测试
1.1 参数校验
根据接口文档,进行业务参数的校验

1.1.1 单个参数校验
随机型:在指定范围或指定长度内任意取值

枚举型:依次取每一个值,例如会籍卡卡种(plus联名卡、站内尊享、站内纯享等)、会员级别(V0-V5)

边界值:对取值范围内的最大、最小、最大+1、最小-1取值

异常值:null、类型最大值和最小值、空字符(常见,非空校验)

默认值:对某些非必填参数,采用默认值

非法值:类型不匹配、超出类型范围、超出操作系统限制、系统关键字

1.1.2 多个参数组合校验
参数与参数之间有业务关联时,需组合校验,例如第三方会员直充接口:

"accountType": 0,  //1=手机号,2=pin,3=身份证号

"account": "",   //账号

组合校验:accountType=1时,account校验1开头的11位数字;

accountType=2时,account仅做非空校验;

accountType=3时,account校验18-20位数值;

accountType=4时,accountType为非法值。

1.2接口调用成功
1.2.1 查询接口
查询接口,调用成功脚本必须覆盖;

可固定入参pin或者从上游接口的返回数组中取数查询验证

1.2.2 操作接口
操作接口往往无法单接口调用成功,依据情况看是否要覆盖调用成功脚本:

例:线上环境部分操作接口不适合做自动化调用,适合前台页面操作;

有些操作接口可以用上下接口串联的形式,达到接口调用成功的效果,示例见2

后置操作:

操作接口的调用成功脚本,需要编辑后置操作:

例:新增地址操作成功后,加上删除该地址的后置操作,否则新增接口脚本长期回归后、同一测试pin下地址会冗余,还会达到地址上限而新增失败

  1. 多接口串联测试(业务流测试)
    将上下多个接口串联,模拟真实场景的业务流测试;

上一个接口的返回值,作为下一个接口的入参(设置变量)请求;

操作接口后面往往需要加“等待时间:Thread.sleep(300)”再请求下一个接口。

场景一:删除收货地址
接口调用步骤

给指定测试pin新增一个收货地址 → 查询该pin收货地址列表 → 取返回值的第一个收货地址id作为删除地址接口入参,删除该地址

优点

如果仅对删除收货地址接口进行固定入参的接口执行,该脚本无法复用,接口无法删除一个已被删除的地址id

场景二:取消售后申请
接口调用步骤

选取指定测试pin可申请售后的订单号 → 申请售后 → 查询售后申请列表查询 → 选取第一条返回结果,取消售后申请

注意点

1° 订单号选电器等保修期长的订单,可保证较长效期内该脚本可复用

2° 提交售后申请需要调售后中台,故在申请售后脚本后面,需要加3秒等待时间再进行下一步操作

3.断言(期望结果)
一个完整的接口测试,包括:请求->获取返回结果→断言,断言是接口自动化中至关重要的一个环节,用于验证测试用例是否执行通过。

如果断言写的过于简单,如仅校验响应码,往往无法佐证用例测试通过。

3.1 断言设计思路
3.1.1 响应码
检查响应码是否符合预期,用来判断测试用例是否执行成功

3.1.2 关键字段
验证关键字段值是否符合预期,用来判断测试用例是否执行成功

3.1.3 正则匹配
当一个接口返回的内容较多,并且有一定规律时,可通过正则表达式校验接口返回的信息,从而判定测试用例是否执行成功

3.1.4 数据库匹配核对
比如对查询一个接口返回的数据进行验证时,可通过编写sql语句查询结果,

然后将sql语句执行后数据库返回的结果与接口返回的结果进行核对,以此来判定测试用例是否执行成功

注:该方式需用代码连库实现,当前Deeptest和穹天平台均未实现连接数据库

3.1.5 通过相关接口进行辅助验证
操作接口,接查询接口辅助验证

例:解绑手机号接口,解绑手机号后,想验证手机号是否解绑成功,可以调用获取用户手机号接口,来验证手机号解绑成功

4.变量
4.1 常用变量类型
4.1.1 数组
数组可以是数值或者json数组,输入多个变量值,用','分隔,每次调用接口随机从数组中取一个数值作为入参

适用于枚举类型或边界值测试

4.1.2 当前日期
有些接口需要传当前日期作为入参,此时当前日期字段适合设置变量。

4.1.3 时间戳
第三方直充会员接口,入参timestamp需校验当前时间前后5分钟内,所以该字段只适用于获取当前时间戳变量,写死的数值无法调用成功

"timestamp": 1622617182000,    //当前时间戳

4.1.4 动态变量
例:{{.data.data.resultList[0].saleServiceInfoVo.serviceId}},取上一个接口的返回值作为本接口入参

4.1.5 随机数
固定位数的随机数

5.数据镜像
将大量测试pin或不同订单状态做成镜像数据,即所有相关的表数据固定,需要新建镜像数据库,存所有相关表、指定订单号/pin的表数据,每次reset至镜像数据。可用job定期或手动reset数据。

接口自动化可将reset镜像数据作为前置条件,来免除单接口测试的前置接口调用,更快速的达到多场景测试效果。

当前阻碍:基础数据库不在我们这边,例如用户信息表,订单数据表,所以无法达到数据镜像效果

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,377评论 6 496
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,390评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,967评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,344评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,441评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,492评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,497评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,274评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,732评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,008评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,184评论 1 342
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,837评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,520评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,156评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,407评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,056评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,074评论 2 352

推荐阅读更多精彩内容