BitXHub是趣链科技自主研发的跨链技术平台,提供基于异构联盟链间的账本互操作解决方案。为保证BitXHub跨链平台在日常迭代过程中的功能符合用户需求,并尽可能多的把问题在发布或交付之前发现并改正,Premo测试工具应运而生。Premo主要基于BitXHub自身的gosdk实现,具有易于扩展和维护的特点。本文主要围绕功能测试、性能测试以及自动化测试三个方面来概述Premo的测试框架。
Premo测试框架如下图所示。基于测试的内容主要分为「功能测试」和「性能测试」。功能测试主要基于testing和testify实现整体测试框架,基于gosdk实现和BitXHub跨链平台的通信和调用;性能测试主要是在gosdk的基础上通过协程实现。Premo在功能测试的基础上又进一步实现了持续集成测试,持续集成测试部分主要借助GitHubActions实现。
彭博社:ChatGPT已可解读美联储声明,并根据头条新闻预测股价走势:4月19日消息,在本月发表的两篇新论文显示,ChatGPT 已可解读美联储声明中的鹰派或鸽派立场,并可根据头条新闻预测股价走势。
ChatGPT 甚至能够以一种类似于央行分析师的方式解释其对美联储政策声明的分类,后者也将语言解释为该研究的人类基准。
同时,研究发现,ChatGPT 根据新闻标题预测的股价后续走势与统计数据有关,表明该技术能够正确分析消息的含义。
这两篇新论文表明,ChatGPT 甚至可以在没有经过专门培训的情况下完成类似的任务。(彭博社)[2023/4/19 14:12:35]
功能测试模块主要依托于BitXHub项目自身的gosdk,testify开源库和testing库实现。功能测试模块根据测试的功能点分为多个测试文件,每一个测试文件内的测试用例都包含于一个测试套件中,在日常测试可以基于你所需要测试的功能点来运行不同的套件,如下图所示。例如model1001_chain_test.go内的所有测试用例都包含在model1这个套件中,如果需要运行chain相关的测试用例只需运行model1的套件即可。
英国财政部发布监管加密交易平台和贷方的计划:金色财经报道,英国财政部发布了一份咨询文件,其中列出了监管加密货币交易平台和贷方的计划,作为其金融服务路线图的一部分。 财政部在一份新闻稿中表示,此次磋商将在 4 月 30 日之前公开征求意见,旨在“为消费者和企业等带来信心和清晰度”。 它补充说,这种方法希望减轻最严重的波动性和结构性脆弱性风险,这些风险一直困扰着该行业的一些商业模式,使其与传统金融保持一致。
英国财政部经济部长Andrew Griffith在新闻稿中表示:“我们仍然坚定地致力于发展经济并实现技术变革和创新,这包括加密资产技术。”迄今为止,英国已采取试探性措施来监管加密货币。金融服务和市场法案于7 月由当时的财政大臣 Nadhim Zahawi 首次提交给议会,其中包括对稳定币和所谓的“数字结算资产”的监管。[2023/2/1 11:39:52]
IRC与Stellar发展基金会合作,试行数字现金支付系统:金色财经报道,国际救援委员会 (IRC) 与Stellar发展基金会合作,试行由Stellar网络、Circle的USDC、Vibrant和MoneyGram International提供支持的数字现金支付系统,以加密货币快速、敏捷、链上可追溯性和问责制的特性,帮助乌克兰难民和其他受战争影响的人。[2022/12/16 21:47:55]
▲并行化测试
随着项目的不断扩展,测试用例的数目也在不断增加,回归全量测试用例所消耗的时间也越来越长,顺序测试的方法在快速迭代的版本开发中显得越来越低效。采用并行化测试可以有效解决这个问题,然而这又会引入一个新的问题,也就是测试用例之间的耦合性。很多用例在串行测试的过程中不会暴露问题,一旦进行并行化测试就会出现并发上的问题。
以BitXHub跨链平台为例,BitXHub跨链平台在接收跨链交易的过程中会根据账户地址维护一个nonce值用于实现跨链交易的有序性,每收到一笔交易nonce值就会增加1,如果收到的nonce值小于预期的nonce值,BitXHub跨链平台就会丢掉这笔交易,反之,如果大于预期的nonce,BitXHub跨链平台就会暂存这笔交易,直至nonce达到预期。这就会要求我们在并行化测试的用例中人为的去维护这个nonce值。因此,并行化测试中很重要的一点就是需要维护用例之间的相对独立性,如何维护用例的相对独立性则需要根据项目自身因地制宜。
美股三大指数高开低走集体收跌,标普500指数跌0.41%:金色财经报道,美股三大指数高开低走集体收跌,纳指跌0.89%,标普500指数跌0.41%,道指跌0.25%。[2022/11/2 12:06:54]
衡量一个跨链服务系统是否可靠稳定很重要的一点便是跨链自身的性能指标。Premo根据上述需求,基于BitXHub自身的gosdk实现了一套完整的性能测试方案用于检验BitXHub跨链平台的性能是否满足需求。Premo中进行的性能测试主要是压力测试,通过向BitXHub跨链平台发送大量的跨链交易来验证BitXHub处理跨链交易的性能。整体性能测试主要分3个步骤进行,分别是应用链准备、发送跨链交易和统计TPS。
▲应用链准备
在发送跨链交易前,需要预先根据不同的交易类型注册一定数量的应用链到中继链,以便后续Premo通过SDK使用这些应用链的身份向中继链发送跨链交易。应用链注册成功后还需要部署相应的验证规则,用于中继链验证交易的有效性。
美联储主席鲍威尔:需要在通胀问题上采取果断有力的行动:9月8日消息,美联储主席鲍威尔表示:在我看来,我们需要在通胀问题上采取果断有力的行动。需要继续前进,直到我们完成抗击通胀的任务。(金十)[2022/9/8 13:17:47]
▲发送跨链交易
根据预先设定的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的功能模块实现自动化并行测试,并及时反馈测试结果。
如想进一步了解Premo测试框架的详细实现,可访问项目地址或联系小助手桔子加入技术交流群,获取更多资料。
地址:https://github.com/meshplus/premo
作者简介
祝炜洁趣链科技数据网格实验室BitXHub团队
标签:HUBBITBITXITXHUB币Inverse Bitcoin Volatility Index TokenMITX币
ICPunks是Dfinity上第一个Cyptopunks风格创建的ICNFT项目,ICPunks上的NFT是引入ERC-721进行铸造的.
1900/1/1 0:00:00据科技边角料消息,北京奇虎科技有限公司、中国信息通信研究院日前联合公开一种“基于联盟区块链的标识解析方法、装置、存储介质及服务器”专利,申请日期为2021年4月29日.
1900/1/1 0:00:00据LiveBitcoinNews报道,比特币ATM运营商CoinFlip现在正在伊利诺伊州芝加哥的旧邮局地区开设新办事处.
1900/1/1 0:00:00撰文:JacobKastrenakes当TomWilliamson和RobMehew首次尝试创建NFT项目时,他们选择了「独角兽」,具体来说就是一只只肥胖的独角兽.
1900/1/1 0:00:001.PolyNetwork发布处理方案:修补漏洞、主网升级和归还用户资产2.迈阿密市的官方加密货币MiamiCoin已经为该市创造近100万美元收益Celsius Network达成了两项和解协.
1900/1/1 0:00:00来源:证券时报网作者:张锐,作者系经济学教授,注:本文章发表的言论,仅代表作者个人观点,不代表证券时报立场。萨尔瓦多以外或许还有更多国家将比特币升级为法定货币,其中可能带有金融博弈的成分.
1900/1/1 0:00:00