快乐赚

得物官网(得物官网公告)

 人阅读 | 作者lilintao | 时间:2023-08-23 13:25

得物快讯 | KEEN正式入驻得物、得物 X 摩动核联名款白起全渠道专供

品牌入驻

KEEN 携 UNEEK溯溪鞋“凉袜”CP七夕礼盒入驻得物

KEEN 正式入驻得物啦,还带来了UNEEK溯溪鞋“凉袜”CP七夕礼盒~UNEEK 系列溯溪鞋设计简约,两条绳 + 一张大底,拥有超强透气性。常规运动鞋的机动性,它也有!采用编制工艺,可自行调节鞋身大小。夏日露营、徒步、日常出行,多场景适穿。礼盒内除了溯溪鞋,还有品牌限定的摸鱼卡包、袜子,礼盒外观采用 LOGO 色,送礼也合适呢~

UNEEK溯溪鞋“凉袜”CP七夕礼盒已在得物正式独家发售,爱好户外运动的潮人们,不妨看一看哦~

新品发售

得物 X 摩动核 联名款精制版白起拼装模型全渠道专供

得物携手摩动核推出联名款精制版白起拼装模型。除了继续保持优良的拼装手感与炫酷造型外,本次联名精制版使用珠光漆喷涂外甲,还配有联名得物极光蓝光翼,更包含专属联名武器:“惊风”与“雷狱”!

如此精致的模型你还不心动嘛?联名款白起得物全渠道专供,还不快来得物,拼出属于你的白起机甲!

得物快讯 | ASICS、LOWA新鞋首发!MLB 美妆官方入驻得物;泡泡玛特戒指盲盒限时发售!

新品发售

ASICS GEL-KAHANA TR V2“MOON PACK”

得物独家首发

作为延续 ASICS 品牌基因、兼备优秀性能表现的运动鞋设计,GEL-KAHANA TR V2 的出现打破了户外与潮流的边界,吸引更多潮流爱好者探索多元的生活方式。近日,ASICS 以登陆月球为设计灵感,推出 GEL-KAHANA TR V2 全新配色及限量版“MOON PACK”套装,由模拟太空金属材质质感作为外包装,并内附登月主题运动手套,提供鉴别前卫视觉与上乘机能的运动户外选择。

8 月12 日 10:00,ASICS GEL-KAHANA TR V2“MOON PACK”套装将于得物独家首发,普通版本 12:00 释出,敬请期待。

新品首发

LOWA MERGER GTX 新品礼盒得物全网首发

伴随 Urbancore 成为越来越多年轻人崇尚的潮流生活方式,来自德国的户外运动品牌 LOWA 亦以其极高的专业水准与品质受到众多关注。2023 年正值 LOWA 创立 100 周年,LOWA 带来主打黑白美学的全新户外鞋 MERGER GTX ,以轻便、简洁的一体化鞋面,搭配注塑外骨架支撑,中底 DYNA-PU 材质提供澎湃动力,营造全新户外风尚。

8 月 11 日,LOWA MERGER GTX 七夕专属新品礼盒登陆得物全网首发,更有惊喜好礼奉上,届时不妨一同来得物解锁新潮户外 ESSENTIALS 。

新品发售

泡泡玛特七夕限定戒指盲盒得物限时发售

七夕佳节到来之际,人气潮玩泡泡玛特 POPMART 正式推出惊喜七夕限定戒指盲盒,全透明钻石切割盒体,搭配 MOLLY、LABUBU、DIMOO、小甜豆等人气 IP 浪漫七夕场景,让心愿点亮指尖,传递无限爱意。

以爱之名,定格此刻,8 月 11 日晚 20 点,泡泡玛特七夕限定戒指盲盒登陆得物限时发售,有兴趣的小伙伴还请保持关注~

官方入驻

MLB 美妆官方入驻

MLB BEAUTY 以亚洲高街潮妆品牌为定位,旨在为亚洲乃至全球爱好时尚潮流的消费者传递“One Touch, Become Stylish”的生活方式,并带来“From Head to Toe”的美妆产品体验,以街头时尚和潮流文化为元素,让经典与创新的融合碰撞,打造更完整,更多元,更有态度的潮流生活方式。

MLB Beauty 自 8 月 10 日起正式入驻得物,此次入驻更有潮夏限定冰晶蓝七夕情人节礼盒在得物独家首发。全新 2023 限定款新品——MLB 冰晶蓝气垫,用高街态度玩转新生代潮流基因,在得物入手该系列新潮美妆,即享 5.1 折超值折扣,更有限量冰晶蓝夏日果冻包和冰晶蓝手持镜限时赠送!

自动化实践-全量Json对比在技改需求提效实践

1、背景

随着自动化测试左移实践深入,越来越多不同类型的需求开始用自动化测试左移来实践,在实践的过程中也有了新的提效诉求,比如技改类的服务拆分项目或者BC流量拆分的项目,在实践过程中,这类需求会期望不同染色环境在相同的配置条件下,拆分后的代码和基准release代码的接口响应response有全量对比结果才能更好达到需求验证点。

2、实践成果

在这种需要对接口返回response做全量json对比的背景下,商家域新的自动化平台新增了json全量对比的组件。在多个技改项目,比如服务拆分和BC流量拆分项目中这种比较大,花费人日比较多的项目测试中,应用了json全量对比验证。在实践过程中,比如原来要先写自动化,把响应结果挨个验证,或者在不同染色请求跟拆分前代码分别执行再对比结果。

在这种技改需求诉求下,全量json对比组件很好地满足了需要验证大量的服务拆分前接口和服务拆分后的接口返回json值全量对比。以商家服务拆分技改为例,技改跨几个迭代,需要回归大量的接口(目前该技改测试的接口已过千,还在跨迭代测试中)。测试过程利用全量json对比组件,不光测试一轮极大提高了测试效率,在二轮还可以用自动化回归提效。

3、实践过程3.1 源组件:JSONCompareUtils

本次全量json对比引用的源组件是JSONCompareUtils,是Artemis框架提供的。JSONCompareUtils提供基于万行级Json的精确比对能力,这个能力基于一套嵌套降噪配置的递归算法实现。在配置合理的情况下,能快速进行较大Json串的比对。详情如下:

引入方式:

maven配置

版本说明

<dependency>

<groupId>com.dewu.tester</groupId>

<artifactId>artemis</artifactId>

<version>1.1.9-SNAPSHOT</version>

</dependency>

发布JSONChecker的工具。发布使用样例:JSONCompareExample

方法名:JSONCompare

参数:JSON expect, JSON actual, Properties properties

参数名

参数类型

类名说明

expect

期望比对的json串

com.alibaba.fastjson.JSON

actual

真实比对的json串

com.alibaba.fastjson.JSON

properties

比对方式和比对降噪配置

java.util.Properties

public static Map<String, String> JSONCompare(JSON expect, JSON actual, Properties properties) else if (expect instanceof JSONObject && actual instanceof JSONObject) else if (expect instanceof JSONArray && actual instanceof JSONArray) else \n\n if (!org.springframework.util.CollectionUtils.isEmpty(diffs)) \n }\n TrackingUtils.tracking();\n return diffs;\n}3.2 JSONCompareUtils组件改造

JSONCompareUtils组件改造后适应于目前效能平台适用的自动化平台组件。

改造后的组件:

改造后的组件名:21471: [JSON] 全量比对-两Json传入:对比接口提取返回与入参的json异同。

修改点:改成对比两个接口提取返回,提取字段取名json1、json2。

入参保留propeties:返回多个时候的排序字段,没有默认空,不排序。

举例:"propeties": "$.data.order=order_no",$.data.order为list[Object],以Object中order_no排序后,再对list做对比。

import json\nimport requests\n\ndef call(env_vars, g_vars, l_vars, sys_funcs, asserts, logger, **kwargs):\n param = sys_funcs.get_call_param()\n path = "http://******/artemis/component/interface-platform/compare/json"\n method = "POST"\n actual1 = l_vars.get("json1")\n actual2 = l_vars.get("json2")\n\n headers = \n body = \n logger.info("Artemis请求body:" + str(body))\n try:\n resq = requests.post(\n path,\n data = json.dumps(body),\n headers = headers,\n timeout=8\n )\n res = json.loads(resq.text)\n logger.info("======================artemis组件结果======================")\n logger.info(res)\n \n asserts.assertTrue(res["success"], msg="调用artemis-interface异常")\n asserts.assertEqual(str(res["data"]), "", msg="存在不一致比对数据 :")\n except Exception as e:\n logger.info(f'执行JSON比对失败【】')\n raise e\n return res\n3.3 组件应用

步骤1: 提取接口返回json1、json2

步骤2: 添加组件

步骤3:对比上面两个接口的提取的返回值

3.4 实践场景3.4.1 实践一

提取接口返回全量标准被参照对比的标准json1,再提取新代码中期望跟标准json1对比的json2,添加全量json组件,对比json1和json2的值。

测试场景:服务拆分技改类需求中需要对不同服务两个或者多个接口返回response全量json结果对比的场景;

提取被参照对比全量json1见图一,对比全量json2见图二,组件执行结果见图三:

图1

图2

图3

3.4.2 实践二

返回json多次设置、多次对比数据。

测试场景:BC流量拆分前和拆分后的代码不同接口路由但是同一个业务功能,返回response全量json需要在不同染色多次对比结果的场景

json1、json2可进行多次设置、多次对比。

3.4.3 实践三

全量json对比不同环境返回数据。

测试场景:拆分前和拆分后的代码相同接口需要在相同配置不同染色环境下返回response全量json结果对比的场景

服务拆分的接口,不同染色环境对比返回的结果:举例如下:

3.4.4 实践四

全量json对比list结果返回顺序不一致的数据。

测试场景:拆分前和拆分后的代码相同接口返回response全量json需要先排序再对比结果的场景

Demo如下:

服务拆分的接口,请求是一个list数组,每次调用返回的list里面的顺序可能不一致,可利用组件的参数先排序再对比json返回结果,两个接口返回的json如下:

可用组件的"propeties": "$.data=userId"(或者"propeties": "$.data=merchantId")json里面的list先排序再对比,这样就规避了list返回顺序不一致的情况:

4、结论

在实际测试过程中,技改的需占比也不小,几乎每个迭代每个域都会有技改类的需求。本文为例,举了几个例子涉及提效需求点:

服务拆分技改类需求中需要对不同服务两个或者多个接口返回response全量json结果对比的场景;拆分前和拆分后的代码相同接口需要在相同配置不同染色环境下返回response全量json结果对比的场景;拆分前和拆分后的代码相同接口返回response全量json需要先排序再对比结果的场景;BC流量拆分前和拆分后的代码不同接口路由但是同一个业务功能,返回response全量json需要在不同染色多次对比结果的场景;

以上场景均能通过自动化+全量json对比组件的方式去提效测试,且在后续回归中直接用自动化覆盖回归,尤其在商家服务拆分跨好几个迭代涉及上千个接口的大的技改类需求中,达到明显的提效效果。

公司目前提供了很多现有的平台和小工具,不同类型的技改需求可以利用平台+小工具模式去实践应用,适合的场景下合理地应用,可以达到事半功倍的效果。

*文/mango

未经得物技术许可严禁转载,否则依法追究法律责任!


文章标签:

本文链接:『转载请注明出处』