宇宙链 宇宙链
Ctrl+D收藏宇宙链
首页 > Gateio > 正文

Premo测试框架详解-ODAILY

作者:

时间:1900/1/1 0:00:00

BitXHub是趣链科技自主研发的跨链技术平台,提供基于异构联盟链间的账本互操作解决方案。为保证BitXHub跨链平台在日常迭代过程中的功能符合用户需求,并尽可能多的把问题在发布或交付之前发现并改正,Premo测试工具应运而生。Premo主要基于BitXHub自身的gosdk实现,具有易于扩展和维护的特点。本文主要围绕功能测试、性能测试以及自动化测试三个方面来概述Premo的测试框架。

Premo测试框架如下图所示。基于测试的内容主要分为「功能测试」和「性能测试」。功能测试主要基于testing和testify实现整体测试框架,基于gosdk实现和BitXHub跨链平台的通信和调用;性能测试主要是在gosdk的基础上通过协程实现。Premo在功能测试的基础上又进一步实现了持续集成测试,持续集成测试部分主要借助GitHubActions实现。

去中心化数据经纪商Oamo完成125万美元Pre-Seed轮融资:6月7日消息,去中心化数据经纪商 Oamo 宣布完成 125 万美元 Pre-Seed 轮融资,White Star Capital 领投。[2023/6/7 21:21:15]

功能测试模块主要依托于BitXHub项目自身的gosdk,testify开源库和testing库实现。功能测试模块根据测试的功能点分为多个测试文件,每一个测试文件内的测试用例都包含于一个测试套件中,在日常测试可以基于你所需要测试的功能点来运行不同的套件,如下图所示。例如model1001_chain_test.go内的所有测试用例都包含在model1这个套件中,如果需要运行chain相关的测试用例只需运行model1的套件即可。

▲并行化测试

Hogwarts Labs宣布完成Pre-A轮融资,累计融资800万美元:6月1日消息,专注Web3+AI的dApps研发公司Hogwarts Labs宣布完成Pre-A轮融资,累计融资800万美元,HashGlobal、经纬创投、XIN Family和DHVC领投,SevenX、Alliance、SKY9、NGC Ventures、EVG、No Limit Holdings、Stratified Capital、Old Fashion Research、North Beta Capital和Puzzle Ventures等参投。

据悉,Hogwarts Labs致力于通过在Web3和AI领域持续开发dApps和Appchain以加快大规模采用。旗下首款产品QuestN是服务于Web3领域的一站式营销、增长和分析平台,目前总用户数已突破250万,DAU超8万。同时Hogwarts Labs宣布第二款服务Web3用户的AI助理产品将不早于Q4发布。[2023/6/1 11:52:45]

随着项目的不断扩展,测试用例的数目也在不断增加,回归全量测试用例所消耗的时间也越来越长,顺序测试的方法在快速迭代的版本开发中显得越来越低效。采用并行化测试可以有效解决这个问题,然而这又会引入一个新的问题,也就是测试用例之间的耦合性。很多用例在串行测试的过程中不会暴露问题,一旦进行并行化测试就会出现并发上的问题。

区块链支付公司Centbee完成100万美元Pre-A轮融资:12月28日消息,区块链支付公司Centbee完成100万美元Pre-A轮融资,Ayre Ventures创始人Calvin Ayre领投,资金用于扩大规模和增长,以及加强技术和运营能力。

Cantbee由联合首席执行官Lorien Gamaroff和A??ngus Brown创立,是一家提供数字现金钱包的区块链支付公司。(finsmes)[2022/12/29 22:13:18]

以BitXHub跨链平台为例,BitXHub跨链平台在接收跨链交易的过程中会根据账户地址维护一个nonce值用于实现跨链交易的有序性,每收到一笔交易nonce值就会增加1,如果收到的nonce值小于预期的nonce值,BitXHub跨链平台就会丢掉这笔交易,反之,如果大于预期的nonce,BitXHub跨链平台就会暂存这笔交易,直至nonce达到预期。这就会要求我们在并行化测试的用例中人为的去维护这个nonce值。因此,并行化测试中很重要的一点就是需要维护用例之间的相对独立性,如何维护用例的相对独立性则需要根据项目自身因地制宜。

库币将于11月3日18点开通PRE/USDT交易服务:据库币KuCoin交易所消息,库币将于11月3日18点上线Presearch(PRE) PRE/USDT交易对并开放交易服务。此前库币已支持PRE/BTC交易服务。Presearch是下一代由社区驱动的去中心化搜索引擎,可以保护用户的隐私,并提供加密货币奖励以及搜寻选项。库币数字货币交易所,为来自207个国家的600万用户提供币币、法币、合约、矿池、借贷等一站式服务。[2020/11/3 11:32:37]

衡量一个跨链服务系统是否可靠稳定很重要的一点便是跨链自身的性能指标。Premo根据上述需求,基于BitXHub自身的gosdk实现了一套完整的性能测试方案用于检验BitXHub跨链平台的性能是否满足需求。Premo中进行的性能测试主要是压力测试,通过向BitXHub跨链平台发送大量的跨链交易来验证BitXHub处理跨链交易的性能。整体性能测试主要分3个步骤进行,分别是应用链准备、发送跨链交易和统计TPS。

▲应用链准备

在发送跨链交易前,需要预先根据不同的交易类型注册一定数量的应用链到中继链,以便后续Premo通过SDK使用这些应用链的身份向中继链发送跨链交易。应用链注册成功后还需要部署相应的验证规则,用于中继链验证交易的有效性。

动态 | NEO上线新测试网并发布NEO3 Preview1:9月16日,NEO上线新测试网并发布了NEO3 Preview1,其主要特性与改进包括:架构、交易、区块及共识机制优化,定价模型调整以及性能提升等。NEO社区开发者可以开始测试和探索NEO3的各项新功能。

作为对NEO2的全面升级,NEO3将提供具有更高吞吐量,更强稳定性和安全性的可扩展平台。该平台同时具有优化的智能合约系统以及功能丰富的基础设施,为开发者创建企业级区块链的创新赋能。[2019/9/16]

▲发送跨链交易

根据预先设定的TPS和应用链数量可以计算出一条应用链在一秒内需要向BitXHub跨链平台发送的跨链交易数量。预先设定的交易类型可以构造出对应的交易体。注意由于跨链交易的有序性要求,我们需要在交易体中维护每一条跨链交易的nonce值。同时为了更加均匀的发送跨链交易,每隔50ms,Premo就会发送部分跨链交易到BitXHub跨链平台上,例如Premo需要模拟20条应用链每秒总共发送2000条跨链交易,那么每条应用链需要在1秒内发送100条跨链交易,每50ms每条应用链就会发送5条跨链交易。

▲统计TPS

统计TPS是通过订阅BitXHub跨链平台的区块事件实现。订阅区块事件后,BitXHub跨链平台每出一个块就会推送到Premo中,Premo通过统计区块内的交易数量来计算TPS,每笔交易的延时=收到区块的时间搓-交易的时间搓。Premo根据上述信息每秒打印TPS和交易的平均延时。

自动化测试主要实现的功能是在任意一个分支提PR到master分支或者release*分支时,完成全量功能测试用例的测试,同时根据测试结果生成相应的测试报告,并将测试报告发布到服务器,通过邮箱的形式通知PR的提交者。

▲Make命令

Premo将功能测试加入make命令中,通过make命令就能进行全量的功能测试。同时make命令根据测试的结果生成相应的测试报告。

▲GitHubActions

GitHubActions是GitHub的持续集成服务。在任意一个分支提PR到master分支或者release*分支时会触发对应的action,action将根据目的分支名拉取对应的Premo分支进行功能测试,同时将成的测试报告发布到指定的服务器上,并将测试报告的连接通过邮件的形式发送给PR的提交者。

▲allure-server

GitHub上开源的AllureReportServer,支持通过GitHubActions的方式发布测试报告,并且allure-server支持docker。

「上述需要进行的工作较多,我们可以一点一点解析」

根据PR触发action:

具体参考githubactions的官方文档Eventsthattriggerworkflows相关章节;

根据目的分支功能测试:

在action中我们可以获取目的分支名,Premo的测试用例是根据BitXHub跨链平台的版本维护的,所以只需根据目的分支名拉取Premo进行功能测试即可;

发布测试报告:

发布测试报告主要通过allure-server进行,allure-server在上文已经提过。需要注意的一点是allure-server对应的服务器的地址不能暴露,否则会给服务器带来不稳定因素,通过仓库中设置来可以解决这个问题;

邮箱通知:

邮件通知在GitHubActions中较为常见,使用对应的action即可。需要注意是由于使用的SMTP的形式所以邮箱的账号和密码不能公开。通过仓库中设置可以解决这个问题。在邮箱通知的过程中需要知道目的邮箱的账目密码,同时还需要邮箱开启SMTP服务,这种情况下在action中配置PR提交者的邮箱变的不可取。

一个合适的解决方式是:通过邮箱自身的收发信规则。以腾讯企业邮箱为例,邮箱支持根据邮件的内容进行自动转发。我们只需要在邮件中携带提交者的github的名称,收发信规则根据名称过滤,将邮件自动转发给PR提交者。通过上述方式在action中不需要根据不同的PR提交者指定不同的邮箱地址,只需要将邮件发送给"中转站"即可。

完成上述工作后,只需要根据BitXHub的分支维护Premo功能测试用例即可完成相应的自动化测试。具体流程如下图所示:

本文介绍了BitXHub官方测试框架Premo的基本设计原理和测试模块,及功能测试和性能测试的重要实现方法。通过GithubActions的编排,Premo可以较好地对BitXHub的功能模块实现自动化并行测试,并及时反馈测试结果。

作者简介

祝炜洁

趣链科技数据网格实验室BitXHub团队

标签:PREHUBBITXBITCryptoXpressPHUBBitingFM

Gateio热门资讯
从登录到提现:打金链游传奇4的最全参与攻略-ODAILY

近段时间,传奇4的火热也让不少小伙伴们高呼爷青回,特别是加密市场的部分小伙伴,一边玩着青少年时期都为之狂热的游戏,一边还能用自己熟悉的方式在上面牟利,以往都是在游戏上花钱,万万没想到也能通过游戏来“薅羊毛”.

1900/1/1 0:00:00
一把双刃剑,元宇宙会否演化成危机?-ODAILY

1992年,美国著名科幻大师尼尔·斯蒂芬森在其小说《雪崩》中首次提到了“元宇宙”这一概念,描述了人们通过耳机和目镜等穿戴产品,连接终端设备从而以虚拟身份进入计算机设计的虚拟世界的场景.

1900/1/1 0:00:00
三分钟读懂:比特币的闪电网络是如何运作的?-ODAILY

2016年10月5日,比特币测试网上的第一笔闪电交易由区块链技术公司BlockStream的工程师团队完成。戴克尔博士在接受采访时表示:“这对闪电网络来说是一个重要的里程碑.

1900/1/1 0:00:00
引介 | 主流密钥管理项目深度对比-ODAILY

本文由EigenLabs译制,原文作者ZhenYuYong。请点击阅读原文获取文章英文原版内容,EigenTeam将持续为您输送区块链最新干货,请您持续关注!Enjoy~随着区块链和其他加密用例的激增,私钥在经济等方面被赋予更多价值.

1900/1/1 0:00:00
一文了解Cere Network发展路线规划:NFT领域的重要基础设施-ODAILY

作者|Barry出品|白话区块链对CereNetwork来说,2021年是意义重大的一年。在过去的一年里,CereNetwork不仅实现了由Republic领导的融资目标,而且从Polygon获得了战略资金,开始进军消费者领域.

1900/1/1 0:00:00
律师解读:央行等十部门通知后 个人投资加密货币是非法行为吗?-ODAILY

吴说作者|广东广强律师事务所李泽民律师韩武斌律师本文独家授权吴说发布与编辑十部门发布的《关于进一步防范和处置虚拟货币交易炒作风险的通知》,其中的重磅条款,就是明确虚拟货币相关业务活动的本质属性是非法金融活动.

1900/1/1 0:00:00