-
华为云软件开发生产线CodeArts是一站式、全流程、安全可信的云原生DevSecOps平台,覆盖需求、开发、测试、部署、运维等软件交付全生命周期环节,为开发者打造全云化研发体验。华为云CodeArts目前已上线28款研发工具,服务于300多万开发者,应用于10多个行业,覆盖开发全场景。2024年10月,CodeArts发布了测试计划、流水线、架构建模相关新特性,具体内容如下:测试计划 CodeArts TestPlan新特性【测试用例】测试用例新增文本模式,支持在一个步骤输入框中,输入用例下的所有步骤【接口测试】新增数据驱动测试,支持针对一个用例,使用不同数据组合进行多轮测试执行【接口测试】接口测试脚本新增内置函数,支持SHA256加密算法【接口测试】同一个测试套支持选择不同环境参数后并行执行【测试执行】测试套件支持批量添加标签和过滤【测试执行】测试套执行完成后,站内信和邮件提醒中支持昵称【测试设计】测试点下仅引用动作因子,可快速生成普通用例【测试设计】脑图用例编号规则支持删除【测试设计】回收站支持查看删除他人回收站的数据体验优化【用例管理】用例筛选状态重置问题优化【测试设计】脑图归档用例的进度条信息支持展示具体的错误信息【测试设计】测试设计归档用例接口性能优化【测试设计】测试设计因子组合生成用例操作流程优化 流水线 CodeArts Pipeline新特性【流水线】流水线执行历史记录列表,新增任务详情字段,且支持展示字段可按需调整【插件市场】下拉选择控件支持编排时新建选项体验优化【插件市场】官方插件,例如构建、部署等插件中关联任务字段的下拉选择框支持搜索【流水线】因未满足执行条件而忽略的任务,在任务详情弹框中展示未执行详情【流水线】流水线参数列表支持在任意行新增或删除相关参数架构建模 CodeArts Modeling新特性支持针对图、元素、关系添加批注,方便在线评审交流体验优化元素关系查询呈现优化,关系呈现更直观模型工程命名规则优化:由全局不重名改为项目内不重名,同时名称允许输入更多特殊字符目前,华为云CodeArts已携手百万级开发者,在政府、物流、金融、教育、制造等10多个行业落地,助力企业构建了敏捷、高效、安全的数字化生产模式。使用华为云CodeArts,中国海油构建了供应链一体化数字化平台,研发工时节省了30%,智能油田管理系统集成、调试、部署时间从1周缩短为1天。中国邮政储蓄银行通过使用华为云CodeArts盘古助手打造智能开发平台,代码生成采纳率超30%,单元测试代码采纳率超60%,已自动生成29万余行高质量代码,高效支持超过200个应用系统的开发,实现了更好的智能化开发体验。未来,华为云CodeArts将积极增强软件开发的全流程智能协同,不断实现智能化创新,提升全流程研发效能,为开发者创造更多的业务价值,促进中国软件生态的繁荣。码上体验体验通道:https://www.huaweicloud.com/devcloud/?utm_source=developer.huaweicloud&utm_content=feature
-
如何构建企业测试中台,实现一站式云端全流程测试自动化解决方案?本期直播将聚焦华为云PaaS 测试计划(CodeArts TestPlan)服务,它是面向软件开发者提供的一站式云端测试平台,覆盖测试管理、接口测试,融入DevOps敏捷测试理念,帮助您高效管理测试活动,保障产品高质量交付。直播链接:cid:link_0Q:自动化测试在不同数据源下怎么做数据整合?A:如果不同数据源只的是针对不同的测试数据。TestPlan的接口自动化测试,提供了全局变量功能,在全局变量中支持配置不同的环境变量。Q:如何在不牺牲性能的前提下,支持更多的用户和测试用例?A:要支持更多的用户和测试用例,实际就是要提高并发。这就要求客户端能提供更大的并发数量,以及服务端提供更高的处理性能(吞吐量,请求处理时延等),同时,用例脚本本身的测试内容也要在合理的范围内。 如果用例或系统已经没有优化的空间,提高并发,必然也需要更大的性能开销。Q:做过的测试用例可以形成模板吗?用例间依赖关系如何管理?A:暂不支持将已有用例固化为模板。但,在测试用例页面的右上角,有一个测试资产中心,内置了大量优秀的测试用例作为范本。 用例间要尽量减少耦合,如果有前后置需求,如接口自动化,可以在创建测试套时,使用前置用例,或后置用例进行管理,用例之间可以使用动态全局变量进行数据传递。Q:服务支持哪些协议和标准(如REST, SOAP, GraphQL等)进行接口测试,是否有扩展性?A:CodeArts TestPlan支持Restful接口,同时系统关键字也提供了系统关键字,进行中间件(redis、obs、kafka),数据库(MongoDB、Mysql)的关键字,而且处于持续更新中,更多关键字可以联系技术支持。Q:测试用例批量导入和导出支持哪些格式?A:手工和功能自动化测试用例支持excel导入导出,接口自动化支持postman、swagger、exce方式导入,和excel的导出。Q:自动化测试可以自定义系统资源的动态分配吗?A:自动化测试,可以根据需要选择自定义资源池,控制资源的使用。Q:测试用例如何进行版本回溯?最多可以保留多少个版本?A:版本回溯属于业务流程管控,平台当前没有内置该流程。专业版\企业版最多可以保留50个版本(包括基线版本)。Q:测试中台如何实现灾难恢复和保证业务连续性?在发生系统故障时,如何快速恢复测试活动?A:公有云和私有云都是多AZ部署,平台经过系统的可靠性、韧性测试。Q:CodeArts TestPlan是否支持基于风险的测试策略?A:测试设计中内置了华为公司多年沉淀的测试策略和设计模板,可以作为参考,输出自有产品的测试策略。Q:对于测试覆盖率,平台有功能生成全覆盖的脚本吗A:基于风险的测试策略下,测试是无法穷尽的。但是在确定的场景下,可以使用测试设计,基于因子组合选择全组合的方式生成用例。Q:如果不同的语言环境,能配合k8s+docker进行自动化测试吗?比如有java,有c++,有pythonA:支持,使用功能自动化,可以支持接入自定义执行机,支持任意脚本语言。Q:如何确保自动化测试脚本的稳定性和可维护性?A:可以通过三层用例管理,以版本的方式管理用例和对应的脚本。Q:CodeArts TestPlan支持移动端应用测试吗?目前适配哪些类型终端?A:CodeArts TestPlan的功能自动化能力,没有内置具体的移动端测试框架,可以支持接入自定义执行机(和测试框架),提供对应的移动端功能测试。Q:华为云PaaS测试计划(CodeArts TestPlan)的测试计划包含哪些内容?A:包含迭代、版本、周期、需求范围等内容。Q:做跨平台测试,不同操作系统和浏览器间可以支持吗?A:支持,可以使用功能自动化测试,支持接入自定义执行机(和测试框架),不限制具体的操作系统和浏览器。Q:自动化测试的脚本,可以和现有的融合吗?比如pytest的或者其他的A:支持,可以使用功能自动化测试,支持接入自定义执行机(和测试框架),不限制具体脚本语言。Q:如何确保不同团队(开发、测试、运维)在使用测试中台时的高效协作?A:测试计划(CodeArts TestPlan)是面向软件开发者提供的一站式云端测试平台,覆盖测试管理、接口测试,融入DevOps敏捷测试理念,帮助您高效管理测试活动,保障产品高质量交付。Q:测试用例可以做优先级排序吗?应该遵循什么原则排序?A:用例有不同的等级,分别用P0、P1…表示。0级:最基本的功能验证,用例不宜过多,各模块尽量保证在10-20个,占比5%左右1级:基本功能验证,可用于继承特性的基本功能验证、迭代验收前的基本功能验证等,占比20%左右2级:重要特性验证,可用于测试版本(非回归版本)中手工测试,占比60%左右3级:一般功能/非重要功能验证,包括对基本/重要功能的异常测试,占比10%~15%左右4级:非常特殊输入、场景、阈值条件的用例,该级别用例不宜过多,占比0%~5%左右Q:CodeArts TestPlan支持自定义测试模板吗?A:暂不支持将已有用例固化为模板。在测试用例页面的右上角,有一个测试资产中心,内置了大量优秀的测试用例作为范本。Q:华为云PaaS测试计划(CodeArts TestPlan)的测试设计有哪些方式?A:支持按特性或需求创建,也可以使用空白脑图,或基于模板创建。Q:在DevOps环境下,如何实现测试活动的自动化和持续集成?A:可以通过在流水线中配置测试验证的插件来实现。部署完成,就可以执行一遍对应的自动化测试。Q:在性能测试方面,该平台提供哪些实时监控和分析工具,以帮助开发者快速识别和解决性能瓶颈?A:支持AOM和APM,可以帮助分析cpu、内存等指标,以及调用链指标,配合压测指标曲线快速识别问题。Q:华为云PaaS测试计划(CodeArts TestPlan)产品都有哪些特性?A:测试计划(CodeArts TestPlan)是一款自主研发的一站式测试管理平台,沉淀了华为多年高质量的软件测试工程方法与实践,覆盖测试计划、测试设计、测试用例、测试执行和测试评估等全流程,旨在帮助企业协同、高效、可信的开展测试活动,保障产品高质量上市。Q:测试数据怎么做隔离和清理?A:可以通过全局变量中的环境进行隔离,同时,可以在测试的后置步骤中进行清理操作。Q:华为云PaaS测试计划(CodeArts TestPlan)产品使用流程包括哪些?A:通用的流程包括测试计划、测试设计、测试用例、测试执行和测试评估。Q:在编写接口测试自动化脚本过程中,前后步骤如何传递变量?A:可以使用局部变量,或动态全局变量。Q:CodeArts TestPlan在软件交付方面有哪些优势?A:大规模高效协同测试、启发式测试设计、测试验证双向可追溯、自动化测试、可视化设计与度量等。Q:支持压力测试和负载测试?A:可以使用CodeArts PerfTest进行压测和负载测试,服务提供了丰富的压测模型,灵活的用例脚本,可以满足多种压测场景的使用。Q:该服务支持哪些编程语言?A:支持,可以使用功能自动化测试,支持接入自定义执行机(和测试框架),不限制具体脚本语言。Q:使用CodeArts TestPlan时,如何处理接口自动化脚本文件过大问题?A:首先,需要建立好用例规范,每个用例建议不要包含过多的用例步骤;其次,常用的脚本可以封装为关键字、组合关键字。Q:华为云PaaS 测试计划(CodeArts TestPlan)服务适用于哪些应用场景?A:如:软件测试和质量管理场景、持续自动化测试场景等。想要了解更多华为云PaaS 测试计划(CodeArts TestPlan)服务相关知识,欢迎观看DTSE Tech Talk 系列技术直播
-
在当今数字化时代,网络安全已经成为了企业和个人不容忽视的重要议题。为了确保网络系统的健康和安全,渗透测试作为一种关键的安全评估工具变得愈发重要。而在渗透测试过程中,信息收集作为探索未知领域的指南针,扮演着不可或缺的角色。本文将深入探讨渗透测试中信息收集的多个关键技术,带您一窥其中的奥秘。开源情报收集(OSINT):剖析数字足迹开源情报收集是渗透测试的基石。通过搜集来自互联网上的公开信息,从域名到社交媒体活动,从邮件地址到员工姓名,渗透测试人员可以构建目标组织的数字足迹,为后续的攻击路径规划提供宝贵线索。DNS分析:揭示网络地图的轮廓域名系统(DNS)不仅是网址和IP地址的映射工具,更是隐藏网络拓扑的钥匙。透过对DNS记录的深入分析,渗透测试人员可以揭示出目标网络的真实轮廓,发现潜在的攻击目标,从而更加精准地进行渗透测试。服务器IP地址和端口信息收集:解读目标网络的大门目标系统的IP地址和开放端口信息是渗透测试人员的入场券。通过使用工具如"Nmap"和"Masscan",您可以有效地扫描目标网络,识别出活跃的主机和开放的服务端口,为进一步的渗透路径规划奠定基础。指纹识别:洞察系统架构的秘密指纹识别是深入了解目标系统的关键一环。通过分析目标系统的技术栈、操作系统和应用程序,渗透测试人员可以识别出潜在的漏洞和弱点,有针对性地进行攻击测试。漏洞数据库搜索:寻找安全漏洞的线索利用漏洞数据库搜索工具,如"CVE Details"和"Exploit Database",渗透测试人员可以查找已知漏洞的详细信息。这些信息有助于评估目标系统的脆弱性,为渗透测试提供方向。网络爬虫:纵览虚拟世界的脉络网络爬虫是一把揭示隐藏信息的神奇钥匙。通过编写脚本,渗透测试人员可以自动化地从网页中提取敏感信息、目录结构、文件列表等,为后续的渗透测试活动提供有力支持。 信息收集是渗透测试中极为重要的阶段,是了解目标系统和发现安全漏洞的基础。通过服务器IP地址和端口信息收集,渗透测试人员可以了解目标网络的大致结构,并为后续的测试活动作出规划。指纹识别则可以帮助渗透测试人员深入了解目标系统的架构和技术栈,从而找出系统的潜在弱点。而利用漏洞数据库搜索工具,渗透测试人员可以寻找已知漏洞的线索,有针对性地进行评估和测试。网络爬虫的应用可以帮助渗透测试人员更全面地探索目标系统,发现隐藏的信息和漏洞。 信息收集的重要性不仅在于为渗透测试提供方向和线索,更在于对于系统管理员和安全团队来说,这些信息可以作为评估系统安全性和修复漏洞的参考。及时了解和修复这些弱点,可以有效地提升系统的安全性和减少潜在的攻击风险。 在进行渗透测试时,充分利用信息收集工具和技术,以信息收集为起点,为后续的测试活动提供有力支持,才能更好地保障网络安全。攻击者往往以人为目标,而社交工程学正是利用这个人性弱点。通过模拟攻击者的手法,渗透测试人员可以评估员工是否容易受到诱导,为组织建立强健的人防线提供依据。收集分析工具:辅助渗透测试的利器在渗透测试中,信息收集需要使用各种工具,如Metasploit、Nmap等。这些工具可以帮助渗透测试人员发现网络薄弱点、漏洞和潜在的攻击路径。通过对这些工具的灵活运用,渗透测试人员可以更加高效地进行信息收集和分析工作。信息收集的应用和意义信息收集在渗透测试中的应用和意义是多方面的。通过信息收集可以全面了解目标组织的渗透测试之道:信息收集在网络安全中的重要性在当今数字化时代,网络安全已经成为了企业和个人不容忽视的重要议题。为了确保网络系统的健康和安全,渗透测试作为一种关键的安全评估工具变得愈发重要。而在渗透测试过程中,信息收集作为探索未知领域的指南针,扮演着不可或缺的角色。本文将深入探讨渗透测试中信息收集的多个关键技术,带您一窥其中的奥秘。开源情报收集(OSINT):剖析数字足迹开源情报收集是渗透测试的基石。通过搜集来自互联网上的公开信息,从域名到社交媒体活动,从邮件地址到员工姓名,渗透测试人员可以构建目标组织的数字足迹,为后续的攻击路径规划提供宝贵线索。DNS分析:揭示网络地图的轮廓域名系统(DNS)不仅是网址和IP地址的映射工具,更是隐藏网络拓扑的钥匙。透过对DNS记录的深入分析,渗透测试人员可以揭示出目标网络的真实轮廓,发现潜在的攻击目标,从而更加精准地进行渗透测试。服务器IP地址和端口信息收集:解读目标网络的大门目标系统的IP地址和开放端口信息是渗透测试人员的入场券。通过使用工具如"Nmap"和"Masscan",您可以有效地扫描目标网络,识别出活跃的主机和开放的服务端口,为进一步的渗透路径规划奠定基础。指纹识别:洞察系统架构的秘密指纹识别是深入了解目标系统的关键一环。通过分析目标系统的技术栈、操作系统和应用程序,渗透测试人员可以识别出潜在的漏洞和弱点,有针对性地进行攻击测试。漏洞数据库搜索:寻找安全漏洞的线索利用漏洞数据库搜索工具,如"CVE Details"和"Exploit Database",渗透测试人员可以查找已知漏洞的详细信息。这些信息有助于评估目标系统的脆弱性,为渗透测试提供方向。网络爬虫:纵览虚拟世界的脉络网络爬虫是一把揭示隐藏信息的神奇钥匙。通过编写脚本,渗透测试人员可以自动化地从网页中提取敏感信息、目录结构、文件列表等,为后续的渗透测试活动提供有力支持。 信息收集是渗透测试中极为重要的阶段,是了解目标系统和发现安全漏洞的基础。通过服务器IP地址和端口信息收集,渗透测试人员可以了解目标网络的大致结构,并为后续的测试活动作出规划。指纹识别则可以帮助渗透测试人员深入了解目标系统的架构和技术栈,从而找出系统的潜在弱点。而利用漏洞数据库搜索工具,渗透测试人员可以寻找已知漏洞的线索,有针对性地进行评估和测试。网络爬虫的应用可以帮助渗透测试人员更全面地探索目标系统,发现隐藏的信息和漏洞。 信息收集的重要性不仅在于为渗透测试提供方向和线索,更在于对于系统管理员和安全团队来说,这些信息可以作为评估系统安全性和修复漏洞的参考。及时了解和修复这些弱点,可以有效地提升系统的安全性和减少潜在的攻击风险。 在进行渗透测试时,充分利用信息收集工具和技术,以信息收集为起点,为后续的测试活动提供有力支持,才能更好地保障网络安全。攻击者往往以人为目标,而社交工程学正是利用这个人性弱点。通过模拟攻击者的手法,渗透测试人员可以评估员工是否容易受到诱导,为组织建立强健的人防线提供依据。收集分析工具:辅助渗透测试的利器在渗透测试中,信息收集需要使用各种工具,如Metasploit、Nmap等。这些工具可以帮助渗透测试人员发现网络薄弱点、漏洞和潜在的攻击路径。通过对这些工具的灵活运用,渗透测试人员可以更加高效地进行信息收集和分析工作。信息收集的应用和意义信息收集在渗透测试中的应用和意义是多方面的。通过信息收集可以全面了解目标组织的
-
-
中奖结果公示感谢各位小伙伴参与本次活动,欢迎关注华为云DTSE Tech Talk 技术直播更多活动~本次活动获奖名单如下(部分视频号抽奖用户无账号名):账号名 奖项名称 奖品名称 xj120141121优质提问华为云开发者定制礼盒nukinsan优质提问华为云开发者定制礼盒xiaozhongy口令抽奖华为云开发者定制折叠雨伞口令抽奖华为云开发者定制折叠雨伞口令抽奖华为云开发者定制折叠雨伞视频号抽奖华为云开发者定制折叠雨伞视频号抽奖华为云开发者定制折叠雨伞视频号抽奖华为云开发者定制POLO衫视频号抽奖华为云开发者定制POLO衫hid_2bljdd3wrtjse3w调研问卷抽奖华为云开发者定制短袖T恤hw89068000调研问卷抽奖华为云开发者定制短袖T恤
-
华为云软件开发生产线CodeArts是一站式、全流程、安全可信的云原生DevSecOps平台,覆盖需求、开发、测试、部署、运维等软件交付全生命周期环节,为开发者打造全云化研发体验。2024年7月,CodeArts发布了需求管理、代码检查、测试计划、部署、流水线、API相关新特性,具体内容如下:需求管理 CodeArts Req新特性IPD特性支持限时免费体验计划管理增加里程碑、发布时间线增加发布、迭代管理视角,支持看板、甘特模式查看需求增加追溯图谱,以图谱形式展示追溯关系新增缺陷跨项目协同,支持给其它项目提交缺陷,并分类展示内置了5类状态卷积规则,用户可以选择是否启用系统特性和任务支持自定义工作流体验优化计划管理的PI更名为“发布”特性更名为“系统特性”,特性树与系统特性页面归一,取消子特性 代码检查 CodeArts Check新特性新增对ArkTS编程语言的代码检查新增告警延迟上线功能,消减检查能力增强对存量代码的影响测试计划 CodeArts TestPlan新特性拷贝测试套件支持修改后缀名称及描述接口自动化支持一键刷新全部关键字支持1个用户同时配置多个角色测试用例导入功能支持用例重复编号覆盖导入体验优化测试设计因子组合功能页面优化部署 CodeArts Deploy新特性新增Vue应用部署系统模板环境管理创建主机集群权限角色修改,允许用户配置不同角色是否有创建主机集群权限,同时新增运维经理的默认创建权限体验优化单个删除应用时,若应用下存在环境,仍可删除成功,并同步删除应用下环境点击帮助文档,本窗口内悬浮可以打开环境-资源列表设置最小列宽,调小列宽后列表内容显示更加合理manifest插件,选择OBS,在弹窗中点击“创建时间”上箭头或下箭头,能够显示排序效果部署记录页面,时间控件选择最近31天时,开始与结束时间蓝色高亮显示流水线 CodeArts Pipeline新特性Pipeline as code, 流水线支持yaml代码化编排新增通用参数组,多流水线通用,减少重复配置优化阶段准入设置,新增准入时间窗设置第三方消息通知支持钉钉通知体验优化文字及图标的悬浮提示规范统一,展示溢出文本内容延时插件优化延时1小时按钮,用户可明确看到延时的时长 API一站式协同 CodeArts API新特性项目管理模块新增定时导入swaggerURL能力快捷调试模块增加实际请求以及页面内名称修改能力体验优化项目管理模块优化权限管理能力,与CodeArts权限同步新用户首次登录时,默认开通的套餐由Devcloud周期版套餐切换为CodeArts体验版套餐目前,华为云CodeArts已吸引来自政务、金融、教育、物流、软件等十多个行业百万级使用者。如华为云CodeArts助力江苏财政构建一体化财政业务系统,有效地支撑10万用户、4万单位业务同时在线办理,提升海量资金管理效率。未来,华为云将继续深入研发测试领域云原生技术的建设,通过技术架构的不断演进驱动IT创新,为客户创造更多业务价值。免费体验CodeArts体验通道:https://www.huaweicloud.com/devcloud/?utm_source=developer.huaweicloud&utm_content=feature
-
千呼万唤始出来,CodeArts 6月体验官活动来啦!为了让开发者更好地体验CodeArts,小编特意给大家准备了重磅好礼。不仅有华为GT系列手表,还有开发者定制礼盒,更有多重定制好礼~快叫上小伙伴一起来体验CodeArts,提交产品使用建议吧~【活动时间】6月1日-6月30日【参与方式】在云声提交对华为云软件开发生产线CodeArts的优化建议如果是新用户,可以先去免费体验我们的CodeArts~再来吐槽~免费体验地址:cid:link_1如果是老用户,功能问题?体验不好?就直接来告诉我们吧~建议提交地址:cid:link_0【奖项设置】有效建议总积分第1名:华为 Watch GT2(46mm表盘)曜石黑(有效建议数量不少于20条)有效建议总积分第2-3名:500元开发者盲盒礼包(有效建议数量不少于12条)有效建议总积分第4-10名:300元开发者盲盒礼包(有效建议数量不少于5条)高价值优质建议奖:100-200元开发者盲盒礼包(有效建议数量不限,可与其他奖项叠加)【活动规则】1.有效建议积分提交1条CodeArts有效建议积1分,当月提交的有效建议越多,总积分越高。2.高价值优质建议奖1)经内部产品研发团队评估为高价值优质建议奖的用户,额外奖励100-200元开发者盲盒礼包/人说明:高价值优质建议要求建议对云产品功能及优化改进有重要作用,优先从已被采纳的建议的选择;建议内容需要表述清晰,有明确的建议方案,最好有操作截图或链接等能进一步详细描述;高价值建议数量不限,且与有效建议积分奖可叠加,每位用户每月最多可获得一次。3.注意事项1)若出现积分相同且排名一致的情况,结合已实现和已采纳建议情况,会由内部技术专家选出价值更高的建议用户给予奖励。2)同一用户在同一页面(文档)提出的同一类问题(包括但不限于错别字、语句不通顺、视觉体验等),在通过审核后仅算作一条有效建议数3)若发现代他人提交优化建议,此建议分值只取原分值30%4)兑换礼品以仓库现有礼品为准,不可以指定,如遇商品缺货,将随机换成其他等价值礼品发放【相关推荐】华为云CodeArts体验官火热招募中,你是愿意与我们携手共进的小伙伴吗?欢迎加入华为云CodeArts体验官计划!
-
单元测试/集成测试自动化工具--WinAMSCoverageMaster winAMS : 适用于嵌入式目标机代码的单元测试/集成测试工具全面支持嵌入式微机!验证嵌入式C/C++软件 实施以模块为单位的自动化单元测试工具不需要HookCode 直接使用目标机代码进行单元测试联合静态解析工具[CasePlayer2],提供C0(语句),C1(判定),MC/DC覆盖率报告,优化测试用例制作已取得第三方认证机构TUVSUD对适用于汽车机能安全ISO26262软件工具的认证产品概要[Coverage master winAMS]是以嵌入式软件的函数为单位,实施模块单元测试以及C0/C1/MCDC覆盖率测试(coverage test)的嵌入式软件自动化单元测试工具。目标机源代码通过交叉编译器生成目标机执行代码,通过跟实际处理器同样的模拟处理器环境进行单元测试,不需要对执行代码做任何变动,使高信赖性的模块测试成为可能。在汽车控制软件这样的对安全性要求极高的领域,单元测试已经成为不可缺少的一部分。使用目标机代码进行单元测试也是为了符合汽车行业中ISO26262功能安全认证标准。产品特长全面支持嵌入式微机!验证嵌入式C/C++软件 实施以模块为单位的自动化单元测试工具作为能够检验出仅凭系统测试以及整体测试无法发现的[潜在错误]的检测方法,[单元测试]在嵌入式开发领域受到广泛重视。同时,单元测试也是汽车用软件功能安全(ISO26262)领域中要求实施的认证项目之一。[Coverage master winAMS]直接使用通过交叉编译生成的目标机代码,在模拟处理器环境下进行单元测试。既能实现C语言程序的逻辑上的单元验证,又能够对嵌入式微机组装为产品后可能发生的问题等进行具有高信赖度的白盒(white box)测试。不需要HookCode 使直接使用目标机代码进行单元测试成为可能的业界唯一的工具有些公司的单元测试工具往往采用在被测试对象的源代码中追加测试用代码或者测试用驱动器的方法,导致测试时所用的代码与组装为产品后的目标机用代码不同。虽然[理论上运行功能应该是相同的],但是从嵌入式开发的角度考虑,这样就如同对交叉编译所生成的经过优化处理的代码进行了加工,无法确保最终产品的质量。Coverage master winAMS是业界唯一的,具有[不需要对被测试对象做任何加工]实施单元测试功能的工具,特别是在安全性要求高的领域中得到很高的评价。不需建立单元测试专用的环境,可以在开发用交叉编译环境进行单元测试Coverage master winAMS不需要追加任何测试用驱动器或测试用代码,可以直接使用将组装成产品的目标代码进行单元测试。单元测试能够与软件开发使用共同的交叉编译环境,不再需要对测试资源进行专门管理,也不再需要建立其他专用环境。因此,既方便程序资源管理,又能够缩短准备测试环境所需的时间。符合汽车功能安全标准(ISO26262)[不做加工直接使用目标机代码实施单元测试]这一要求的最佳工具ISO26262是从IEC61508衍生出来的适用于汽车制造领域的功能安全标准。其中的Part.6-9[软件程序单元测试]包括了关于软件程序的构造覆盖率测试以及有关的规定项目。根据汽车安全标准(ASIL),提出了测试语句覆盖率(statement coverage),分支覆盖率(branch coverage),MC/DC覆盖率的推荐性事项。其中的另一个推荐性事项是[尽可能使单元测试的环境与目标环境相同]的规定。如果在与目标环境不同的环境下进行单元测试,必须表明源代码与目标代码的差别,以及目标环境和测试环境的差别。因此,对于那些使用与目标微机不同的电脑进行编译和单元测试的其他公司的工具而言,这个要求很难满足。 还有些公司的单元测试工具虽然包括交叉编译环境及编译功能,而且也能够在与目标环境相同的环境下进行测试,但是所有的测试都需要插入测试用代码,进行再次编译,因此测试也只能在与目标环境不同的环境下实施。GAIO提供的单元测试工具Coverage master winAMS具有●采用全面支持嵌入式微机的微机化功能测试平台环境●不需要插入测试用代码直接使用目标机代码进行测试的特征,提供符合ISO26262标准要求的必须功能。GAIO提供的Coverage master winAMS是符合ISO26262标准[直接使用整装用代码实施单元测试]这一要求的业界唯一的工具。关于汽车机能安全ISO26262的对应以及认证的获得已取得第三方认证机构TUVSUD对适用于汽车机能安全ISO26262软件工具的认证2012年6月28日,「Coverage master winAMS / General」测试工具获得由德国TUVSUD第三方认证机构,在汽车机能安全规格的ISO26262软件工具方面的认证,包括日本在内亚洲地区首次获得该项认证。通过此项认证,说明本公司的单元测试工具「Coverage master winAMS / General」,以及程序分析工具「CasePlayer2」,在静态分析和单元测试领域,是符合所有安全度水准的工具,并由TUVSUD认证机构得到了保障。ISO 26262对于不同的开发用软件工具在工具置信水平(TCL),都需要开发者提供开发软件工具的认证书。此项认证适用于在工具认证当中,最为复杂的TCL3工具认证标准。因此,导入本公司的单元测试工具之后,不需要对TCL的部分进行认证,进而可以缩减手续跟时间。主要的单元测试功能采用SSTManager管理单元测试projectSSTManager是Coverage master winAMS的应用功能,用于管理单元测试project,制作测试数据(test data)。从设定测试环境开始,到报告测试结果为止,均由微机化功能测试平台(ISS)实施综合管理。采用通用便利的CSV文件管理测试数据的输入输出Coverage master winAMS不需要插入测试用代码,直接使用目标机代码进行单元测试。采用通用便利的CSV文件管理函数测试时使用的输入输出数据。测试结束后,输出的测试结果和输出的期待值也将以相同的格式显示在CSV文件之中。C0/C1覆盖率报告的自动化制作功能(标准功能)根据测试的输入输出数据自动报告相应源代码的C0/C1测试覆盖率结果。包括通过图形(viewer)显示测试数据,以及与其相应的被测试的源代码路径的功能,用于分析测试结果。作为选项功能也包括MC/DC覆盖率测试功能。MC/DC覆盖率的自动化测试功能(选项功能)作为选项功能提供MC/DC覆盖率测试功能。C0/C1覆盖率测试不需要加工即可直接使用目标机代码。然而,MC/DC覆盖率测试对于复合式的条件式,需要自动插入HookCode将复合式的条件式分解,才能对各条件式进行测试。这样就有可能导致测试用代码与目标机用代码的不同。为了验证HookCode的妥当性,在MC/DC覆盖率测试的同时,运行目标机代码,确认运行结果与期待值的一致性。注:右图举例显示,第2个if句的复合条件式中,[gbc>30]为false时的分支没有被测试到。以C1覆盖率测试来说,它的测试结果是OK;而对于MC/DC覆盖率测试来说,它的结果是NG。注: MC/DC覆盖率测试功能不支持C++程序。单元测试的效率化功能联合程序解析工具CasePlayer2,实现代码参照解析作业的效率化利用CasePlayer2生成的流程图表以及模块构造图(调用函数的构造图)与源代码的连接(link)功能,使单元测试用源代码的解析工作效率化。能够自动检索被测试函数的外部变量,使测试条件设定效率化联合程序解析工具CasePlayer2,自动检索被测试函数所使用的外部变量。缩短了以往必须对源代码进行搜索找出输入条件的变量所需的工作。而且,能够防止人工操作导致的类似变量指定遗漏的的错误。根据代码解析自动化制作C0,C1,MC/DC 覆盖率测试计划联合程序解析工具CasePlayer2,自动化制作符合覆盖率测试要求的条件分支if,switch,for,while等的测试数据。可以将被测试函数中含有的条件式(if以及switch等)在数据制成图形(Viewer)上列表显示。点击其中的条件,工具将自动开始检索与之相关的变量,进而从所设置的条件的境界值中自动生成覆盖率测试所需要的数据。为了达到C1/MCDC覆盖率,测试时需要对各函数的数据进行组合。利用CasePlayer2提供的解析结果,分析条件式的net构造,在重复性限制在最小限度下生成C1/MCDC覆盖率测试用数据。支持MPU CoverageMaster winAMS Supported Processor List(English)动作环境・操作PC/OS・IBM PC/AT 兼容机・Pentium(相当) 2GHz 以上的CPU・存储器 512MB 以上(推荐值)・显示器分辨率 XGA(1024*768)以上(推荐值)・Windows XP, Windows Vista, Windows 7(32bit/64bit)(※Windows 95/98/Me/NT/2000 未支持)
-
我们正在寻找充满激情的开发者,如果你认可华为,认可华为云软件开发生产线CodeArts,欢迎加入华为云CodeArts体验官计划!在这里,你可以寻找和你志同道合的小伙伴,与你一起探讨技术!在这里,你可以学习华为的先进理念,一起体验并发现CodeArts的不足之处,和我们一起共同成长!期待与你共赴星辰大海,拥抱春暖花开!华为云PaaS服务小智 发表于2024-05-24 16:18:08 2024-05-24 16:18:08 最后回复 yd_280589341 2024-10-18 17:37:062580 34
-
我在电脑上安装了一个JAVA8 是不是不正确?求大神指导
-
探索技术新领域,共话CodeArts精彩!诚邀各位开发者加入我们的CodeArts产品交流群。在这里,你将与志同道合的同行者一起,深入了解CodeArts产品的魅力与实力。我们分享最新技术动态,探讨编程难题,共同提升技能水平。快来加入我们,开启一段充满智慧与激情的交流之旅吧!期待与你携手共进,共创美好未来!请扫描下方二维码添加小助手微信,加入我们的大家庭!
-
问题:1.Cannot activate the 'Java Debug Support' extension because its dependency 'SmartAssist Java' failed to activate2.激活“huaweicloud.smartassist-java-ls”扩展失败:c:\Users\道易\.codearts\extensions\smartassist-java-ls-2308.0.46\data\unhar64.exe closed with code 2。
-
在ieda插件中搜索并下载CodeArts Snap插件后启动无反应,界面一直显示欢迎使用,输入key后还是不行,多次卸载重新安装,从官网下载用仓库下载都无法使用,但是在CodeArts IDE中可以使用,求助各位大神如何解决以下是报错提示界面:以下是报错详情:com.intellij.diagnostic.PluginException: No display name specified in plugin descriptor XML file for configurable com.huawei.codeelf.common.settings.configurable.CodeElfConfigurable; specify it using 'displayName' or 'key' attribute to avoid necessity to load the configurable class when Settings dialog is opened [Plugin: com.huawei.codearts.snap] at com.intellij.openapi.options.ex.ConfigurableWrapper.getDisplayName(ConfigurableWrapper.java:156) at com.intellij.openapi.options.ex.Weighted.lambda$static$0(Weighted.java:26) at java.base/java.util.TimSort.binarySort(TimSort.java:296) at java.base/java.util.TimSort.sort(TimSort.java:221) at java.base/java.util.Arrays.sort(Arrays.java:1307) at java.base/java.util.ArrayList.sort(ArrayList.java:1721) at com.intellij.openapi.options.ex.SortedConfigurableGroup.buildConfigurables(SortedConfigurableGroup.java:41) at com.intellij.openapi.options.SearchableConfigurable$Parent$Abstract.getConfigurables(SearchableConfigurable.java:75) at com.intellij.openapi.options.ex.EpBasedConfigurableGroup.<init>(EpBasedConfigurableGroup.kt:110) at com.intellij.openapi.options.ex.ConfigurableExtensionPointUtil.getConfigurableGroup(ConfigurableExtensionPointUtil.java:119) at com.intellij.ide.actions.ShowSettingsUtilImpl$Companion.getConfigurableGroups(ShowSettingsUtilImpl.kt:48) at com.intellij.ide.actions.ShowSettingsUtilImpl.showSettingsDialog(ShowSettingsUtilImpl.kt:127) at com.intellij.ide.actions.ShowSettingsUtilImpl.showSettingsDialog(ShowSettingsUtilImpl.kt:116) at com.intellij.ide.actions.ShowSettingsUtilImpl.showSettingsDialog(ShowSettingsUtilImpl.kt:109) at com.intellij.ide.actions.ShowPluginManagerAction.actionPerformed(ShowPluginManagerAction.java:36) at com.intellij.ui.AnActionButton$AnActionButtonWrapper.actionPerformed(AnActionButton.java:180) at com.intellij.openapi.actionSystem.ex.ActionUtil.doPerformActionOrShowPopup(ActionUtil.java:344) at com.intellij.openapi.actionSystem.ex.ActionUtil.lambda$performActionDumbAwareWithCallbacks$4(ActionUtil.java:318) at com.intellij.openapi.actionSystem.ex.ActionUtil.performDumbAwareWithCallbacks(ActionUtil.java:381) at com.intellij.openapi.actionSystem.ex.ActionUtil.performActionDumbAwareWithCallbacks(ActionUtil.java:318) at com.intellij.openapi.actionSystem.ex.ActionUtil.invokeAction(ActionUtil.java:553) at com.intellij.ui.popup.ActionPopupStep.performAction(ActionPopupStep.java:258) at com.intellij.ui.popup.ActionPopupStep.lambda$onChosen$3(ActionPopupStep.java:235) at com.intellij.ui.popup.AbstractPopup.lambda$dispose$18(AbstractPopup.java:1733) at com.intellij.openapi.wm.impl.FocusManagerImpl.lambda$doWhenFocusSettlesDown$3(FocusManagerImpl.java:169) at com.intellij.util.ui.EdtInvocationManager.invokeLaterIfNeeded(EdtInvocationManager.java:33) at com.intellij.ide.IdeEventQueue.ifFocusEventsInTheQueue(IdeEventQueue.kt:220) at com.intellij.ide.IdeEventQueue.executeWhenAllFocusEventsLeftTheQueue(IdeEventQueue.kt:186) at com.intellij.openapi.wm.impl.FocusManagerImpl.doWhenFocusSettlesDown(FocusManagerImpl.java:165) at com.intellij.openapi.wm.impl.FocusManagerImpl.doWhenFocusSettlesDown(FocusManagerImpl.java:159) at com.intellij.ui.popup.AbstractPopup.dispose(AbstractPopup.java:1731) at com.intellij.ui.popup.WizardPopup.dispose(WizardPopup.java:161) at com.intellij.ui.popup.list.ListPopupImpl.dispose(ListPopupImpl.java:407) at com.intellij.ui.popup.PopupFactoryImpl$ActionGroupPopup.dispose(PopupFactoryImpl.java:293) at com.intellij.openapi.util.ObjectTree.runWithTrace(ObjectTree.java:130) at com.intellij.openapi.util.ObjectTree.executeAll(ObjectTree.java:162) at com.intellij.openapi.util.Disposer.dispose(Disposer.java:250) at com.intellij.openapi.util.Disposer.dispose(Disposer.java:238) at com.intellij.ui.popup.WizardPopup.disposeAllParents(WizardPopup.java:269) at com.intellij.ui.popup.list.ListPopupImpl.disposePopup(ListPopupImpl.java:518) at com.intellij.ui.popup.list.ListPopupImpl.handleNextStep(ListPopupImpl.java:542) at com.intellij.ui.popup.list.ListPopupImpl._handleSelect(ListPopupImpl.java:505) at com.intellij.ui.popup.list.ListPopupImpl.handleSelect(ListPopupImpl.java:449) at com.intellij.ui.popup.PopupFactoryImpl$ActionGroupPopup.handleSelect(PopupFactoryImpl.java:305) at com.intellij.ui.popup.list.ListPopupImpl$MyMouseListener.mouseReleased(ListPopupImpl.java:745) at java.desktop/java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:298) at java.desktop/java.awt.Component.processMouseEvent(Component.java:6657) at java.desktop/javax.swing.JComponent.processMouseEvent(JComponent.java:3385) at com.intellij.ui.popup.list.ListPopupImpl$MyList.processMouseEvent(ListPopupImpl.java:810) at java.desktop/java.awt.Component.processEvent(Component.java:6422) at java.desktop/java.awt.Container.processEvent(Container.java:2266) at java.desktop/java.awt.Component.dispatchEventImpl(Component.java:5027) at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2324) at java.desktop/java.awt.Component.dispatchEvent(Component.java:4855) at java.desktop/java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4969) at java.desktop/java.awt.LightweightDispatcher.processMouseEvent(Container.java:4583) at java.desktop/java.awt.LightweightDispatcher.dispatchEvent(Container.java:4524) at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2310) at java.desktop/java.awt.Window.dispatchEventImpl(Window.java:2809) at java.desktop/java.awt.Component.dispatchEvent(Component.java:4855) at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:794) at java.desktop/java.awt.EventQueue$3.run(EventQueue.java:739) at java.desktop/java.awt.EventQueue$3.run(EventQueue.java:733) at java.base/java.security.AccessController.doPrivileged(AccessController.java:399) at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86) at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:97) at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:766) at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:764) at java.base/java.security.AccessController.doPrivileged(AccessController.java:399) at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86) at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:763) at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.kt:695) at com.intellij.ide.IdeEventQueue.dispatchMouseEvent(IdeEventQueue.kt:635) at com.intellij.ide.IdeEventQueue._dispatchEvent$lambda$10(IdeEventQueue.kt:580) at com.intellij.openapi.application.impl.RwLockHolder.runWithEnabledImplicitRead(RwLockHolder.kt:75) at com.intellij.openapi.application.impl.RwLockHolder.runWithImplicitRead(RwLockHolder.kt:67) at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.kt:580) at com.intellij.ide.IdeEventQueue.access$_dispatchEvent(IdeEventQueue.kt:72) at com.intellij.ide.IdeEventQueue$dispatchEvent$processEventRunnable$1$1$1.compute(IdeEventQueue.kt:355) at com.intellij.ide.IdeEventQueue$dispatchEvent$processEventRunnable$1$1$1.compute(IdeEventQueue.kt:354) at com.intellij.openapi.progress.impl.CoreProgressManager.computePrioritized(CoreProgressManager.java:793) at com.intellij.ide.IdeEventQueue$dispatchEvent$processEventRunnable$1$1.invoke(IdeEventQueue.kt:354) at com.intellij.ide.IdeEventQueue$dispatchEvent$processEventRunnable$1$1.invoke(IdeEventQueue.kt:349) at com.intellij.ide.IdeEventQueueKt.performActivity$lambda$1(IdeEventQueue.kt:1014) at com.intellij.openapi.application.TransactionGuardImpl.performActivity(TransactionGuardImpl.java:114) at com.intellij.ide.IdeEventQueueKt.performActivity(IdeEventQueue.kt:1014) at com.intellij.ide.IdeEventQueue.dispatchEvent$lambda$7(IdeEventQueue.kt:349) at com.intellij.openapi.application.impl.ApplicationImpl.runIntendedWriteActionOnCurrentThread(ApplicationImpl.java:848) at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.kt:391) at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:207) at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:128) at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:117) at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:113) at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:105) at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:92)
-
华为云CodeArts TestPlan体验通道:https://www.huaweicloud.com/product/cloudtest.html?utm_source=developer.huaweicloud&utm_content=q&a1.【TestPlan】测试用例界面操作历史,能记录哪些操作答:除了附件上传、更新、用例评论没有记录的,其他测试用例详情内的所有内容,比如描述、条件、测试步骤修改都有记录;2.【TestPlan】测试用例等级选择规则是什么?答:L0级最基本的功能验证,用例不宜过多,各模块尽量保证在10-20个,占比5%左右。 L1级基本功能验证,可用于继承特性的基本功能验证、迭代验收前的基本功能验证等,占比20%左右。 L2级重要特性验证,可用于测试版本(非回归版本)中功能测试,占比60%左右。 L3级一般功能/非重要功能验证,包括对基本/重要功能的异常测试,占比10%~15%左右。 L4级非常特殊输入、场景、阈值条件的用例,该级别用例不宜过多,占比0%~5%左右。3.【TestPlan】测试报告中“总遗留DI”指标如何计算?答:DI=关键*10+重要*3+一般*1+提示*0.1,总遗留DI为当前项目中所有未在结束态的缺项加权计算结果。4.【TestPlan】导入测试接口自动化用例,postman的json文件时,导入失败答:填写完整url等参数后导出json5.【TestPlan】能否根据Postman文件/Swagger文件中多层目录,生成多个独立测试用例?答:每次只能导入一个测试用例。导入的测试用例只能生成测试步骤,不支持生成前置步骤与后置步骤。6.【TestPlan】自定义角色参考测试经理配置权限后,无法完成创建测试计划等操作答:Testplan权限无法给自定义角色配置,自定义角色无创建测试计划,测试套等相关测试权限,需使用系统角色。 系统角色权限参考:https://support.huaweicloud.com/usermanual-testman/cloudtest_01_0000.html7.【TestPlan】总需求覆盖率与手工需求覆盖率、接口自动化的需求覆盖率有什么关系吗?答:如需求与测试用例对应关系比较简单,均为一一对应关系,可以直接两者求和作为总的需求覆盖率;如存在需求与测试用例(手工/自动)一对多关系,则总需求覆盖率与两者分别计算结果无直接关联。8.【TestPlan】接口自动化用例是否支持Python语言开发脚本?答:不支持,当前仅支持导入Postman文件、Swagger文件、Excel文件用于生成测试用例。9.【TestPlan】测试质量看板中需求覆盖率是如何计算的?答:需求覆盖率= 已完成用例开发的需求数/总需求数 其中已完成: 需求关联的测试用例的状态为已完成; 总数:Epic、Feature、Story均作为独立需求进行统计。10.【TestPlan】导入手工测试用例有什么限制答:1.单次导入用例条数不超过5000条。 2.单次文件大小不超过5M。 3.测试计划服务当前支持Excel表格格式。如果数据不符合导入标准,页面提示下载错误报告,请修改数据后重新导入11.【TestPlan】测试用例列表中,勾选测试用例,点击规范检查,检查用例范围是哪些?答:在测试用例列表中,点击规范检查,检查范围为当前版本下所有的用例;12.【TestPlan】测试用例编写时,如何把常用的请求配置成一个接口组合,其他用例可以直接使用这个组合而不需要每次都要重复配置相同的请求接口?答:测试服务提供了关键字库能力,用户可以通过将一些相同的前置步骤或者测试逻辑配置到组合关键字中,就可以被其他测试用例调用实现逻辑复用。13.【TestPlan】新版本测试用例合并到基线版本时选择覆盖重复用例的导入,和覆盖用例关联项场景时,会覆盖哪些数据答:用例只保留源版本用例关联的需求;源版本和目标版本用例关联的缺陷都会保留,其他数据都会覆盖14.【Testplan】CodeArts TestPlan中上传接口自动化脚本swagger文件时提示文件过大,该怎么处理?答:当前产品的限制是1M,建议拆分swagger文件来进行测试15.【TestPlan】接口自动化测试在测试服务的增删改查功能时是否会出现大量冗余数据的情况,比如插入测试用例执行成功但是删除测试用例执行失败?答:基于这种情况,接口自动化测试提供了前置步骤(准备阶段)和后置步骤(销毁阶段),在一个测试用例中我们可以在前置步骤中插入数据,并通过参数传递将插入的数据信息传递给测试阶段和后置步骤,测试结束后我们在后置步骤中再进行数据的删除,这样就可以避免插入和删除用例分开执行时插入成功但是删除失败而产生的冗余数据。16.【TestPlan】用户的多个项目对应同一系列不同批次产品,建议在测试用例管理时如何高效使用CodeArts?答: 测试服务的测试用例管理中,已自动创建了基线版本,这里的用例代表该版本产品的基线能力,测试人员平时需维护好在其中的用例。 若有另外一产品,源于该产品并做了全新升级,需要另外创建项目时,可以在新的基线用例中继承它们。 17.【TestPlan】接口自动化测试中支持那些比较类型?答:数字比较(等于(数字),不等于(数字),大于等于(数字),小于等于(数字),大于(数字),小于(数字)); 字符串比较(等于(字符串、区分大小写),不等于(字符串、区分大小写),等于(字符串、不区分大小写),包含(字符串),不包含(字符串)); 正则比较,(正则表达式); 通用比较(是否为空)json数组比较(数组是否为空数组); 类型比较(是否是json数组类型,是否是json对象类型); json对象比较(json等于)18.【TestPlan】使用接口自动化测试时在响应提取中如何提取数据?答:来源为'响应体(JSON)'的属性说明,此处共支持两类提取表达式: 1、 普通提取表达式 (非$开头),例如: item.name 2、 JsonPath表达式 ('$.'或'$['开头)例如:$.store.book[0].title19.【Testplan】使用模板excel导入测试用例,需求编号和需求名称是否同时校验?答:系统只校验需求编号是否正确,不校验需求名称
-
代码检查时候我应该如何进行自定义规则?
上滑加载中
推荐直播
-
TinyEngine低代码引擎系列.第1讲——低代码浪潮之下,带你走进TinyEngine
2024/11/11 周一 16:00-18:00
李老师 高级前端开发工程师
低代码浪潮之下,带你走进TinyEngine。李旭宏老师将从低代码的发展趋势、TinyEngine的项目介绍,三方物料组件的使用、跨技术栈的使用、源码生成能力的差异性对比等多个方面带大家对TinyEngine低代码引擎有一个更清晰的认知和了解。
即将直播 -
0代码智能构建AI Agent——华为云AI原生应用引擎的架构与实践
2024/11/13 周三 16:30-18:00
苏秦 华为云aPaaS DTSE技术布道师
大模型及生成式AI对应用和软件产业带来了哪些影响?从企业场景及应用开发视角,面向AI原生应用需要什么样的工具及平台能力?企业要如何选好、用好、管好大模型,使能AI原生应用快速创新?本期直播,华为云aPaaS DTSE技术布道师苏秦将基于华为云自身实践出发,深入浅出地介绍华为云AI原生应用引擎,通过分钟级智能生成Agent应用的方式帮助企业完成从传统应用到智能应用的竞争力转型,使能千行万业智能应用创新。
去报名
热门标签