自动化测试
文章平均质量分 87
代码小念
这个作者很懒,什么都没留下…
展开
-
测试断言哪家强?
在《xunit pattern》中提出了“四阶段自动化测试“,即一个最简单的测试用例可以由如下图所示的4个步骤组成。断言主要应用在xUnit“四阶段自动化测试“中的第三步-验证(verify)阶段。即对于执行完成SUT某项指令之后,来验证其状态,或者执行的结果。原创 2024-05-21 16:11:43 · 233 阅读 · 0 评论 -
深入理解 pytest Fixture 方法及其应用
在Python 中,pytest是一种广泛使用的测试框架,它提供了丰富的功能和灵活的扩展性。Fixture方法可以通过自动调用或显式调用来使用。自动调用是pytest的默认行为,它会在测试函数中自动应用适用于特定fixture名称的fixture方法。可以在pytest.fixture装饰器下定义fixture方法,并可以在测试函数中使用fixture名称作为参数调用它。最佳实践包括定义清晰、可重用和可维护的fixture方法,避免滥用fixture并编写良好的文档和示例来说明fixture的用途和用法。原创 2024-05-21 16:10:38 · 236 阅读 · 0 评论 -
Linux查找文件命令
其中,path是要查找的目录路径,可以是一个或多个,用空格分隔,如果省略,则默认为当前目录。expression是可选的,用于指定查找的条件和动作,可以是-name, -type, -size, -exec等选项。其中,pattern是要查找的字符串或正则表达式,files是要查找的文件,可以是一个或多个,用空格分隔,如果省略,则从标准输入读取数据。,但不支持正则表达式。locate命令是在一个数据库中查找文件或目录,这个数据库是由updatedb命令定期更新的,包含了系统中所有文件和目录的信息。原创 2024-05-20 21:22:14 · 727 阅读 · 0 评论 -
外包干了2个月,技术倒退2年。。。
先说一下自己的情况,本科生,20年通过校招进入深圳某软件公司,干了接近4年的,今年国庆,感觉自己不能够在这样下去了,长时间呆在一个舒适的环境会让一个人堕落!而我已经在一个企业干了四年的功能测试,已经让我变得不思进取,谈了3年的女朋友也因为我的心态和工资和我分手了。于是,我决定要改变现状,冲击下大厂。刚开始准备时,自己都蒙了,四年的功能测试让我的技术没有一丝的进步,提升的只有我的年龄…没办法,我找到了我在抖音集团的老哥,作为他的小老表,在他了解了我的情况后(几乎就是。原创 2024-05-18 21:29:08 · 743 阅读 · 0 评论 -
Fiddler抓包,怎么抓抓得好抓得快?
Fiddler 很智能,当用户打开 Fiddler 就已经设置好浏览器的代理了,代理地址 127.0.0.1 端口 8888。Fiddler 有一个抓包开关,File –> Capture Traffic,开启后左下角显示,也可以直接点击左下角图标来关闭/开启抓包功能。Fiddler 能直接抓取 HTTP 协议请求,要想抓取 HTTPS 请求就需要安装 Fiddler 证书。Fiddler 主要分为三个模块,顶部菜单栏,左侧抓包面板,右侧抓包数据相关面板。c. 重启 Fiddler。原创 2024-05-18 17:08:14 · 357 阅读 · 0 评论 -
性能测试干2年,还不会这个技术点?!
nmon是一种在AIX与各种Linux操作系统上广泛使用的监控与分析工具,记录的信息比较全面,结合nmon_analyzer工具产生数据文件与图形化结果。一般来说不建议对稳定性测试使用nmon监控,因为生成的nmon文件超过10M时,分析工具会由于内存不足导致报错。通过rz命令,或者ftp把下载的nmon上传到服务器创建的nmon文件夹。通过以下命令,将.nmon文件转化成.csv文件,在当前目录生成对应的.csv文件。如果想停止该监控,需要通过“-c 指的是采样的次数,即以上面的采样频率采集多少次。原创 2024-05-18 17:07:05 · 431 阅读 · 0 评论 -
代码覆盖率如何测试,需要用到哪些工具?
它量化了自动化测试所涵盖的代码的百分比,从而深入了解代码库中已测试和未测试的区域。在分析代码覆盖率报告时,关注未覆盖的区域并评估它们带来的风险至关重要。为了测量代码覆盖率,在测试执行期间使用工具来监视执行的代码行、分支和条件。完成后,将生成一个报告,其中突出显示了代码的覆盖和未覆盖部分。代码覆盖率是通过监视在自动化测试期间执行的代码行、分支和条件来衡量的。Codecov:一种在线服务,可以处理由许多覆盖工具生成的报告,并与 GitHub、Bitbucket 和 GitLab 集成。原创 2024-05-17 16:49:53 · 574 阅读 · 0 评论 -
面试中如何做自我介绍
项目要求对一部分固定的功能进行自动化测试脚本的实现,使用unittest框架,脚本中插入断言和引入外部数据文件,导出过测试报告。最近做过的一个项目是XXXXX管理系统,在其中负责XXXX模块的测试工作,他的主要功能是XXXX,设计和编写了XXX条用例,发现了XXX个bug。6)项目中,我全程参与了需求评审,测试计划的设定,编写测试用例,执行测试、提交Bug,我们都用禅道/JIRA进行用例和缺陷的管理和跟踪。建议2,突出一个拿手的、最能体现技术的、最熟悉的一个项目。6、技能点的说明,不够准确,范围太大。原创 2024-05-17 16:49:02 · 323 阅读 · 0 评论 -
为什么您的自动化里面存在很多重复代码?
这并非是对测试人员的批评或给予标签,而是区分不同岗位的专长不一样:开发人员主要是设计和编写软件代码,参与软件的设计和架构决策,对软件架构和设计模式有一定的理解;检查现有的测试脚本,找出重复出现的代码片段或者可以通用的功能模块,这些通常是抽取成工具类的好候选。编写工具类的代码,实现具体的功能的时候需要注意代码的质量,包括编码规范、注释等,以便于团队成员理解和使用。业务需求推动了行业的软件开发,并且由于测试代码不是交付给客户的产品的一部分,因此它通常被认为不太重要,大部分公司只管功能实现,能用就行。原创 2024-05-16 19:43:27 · 212 阅读 · 0 评论 -
JMeter 二次开发环境准备详解
随后,将此.jar文件放置于JMeter的/lib/ext目录下,重启JMeter,新开发的功能便会在相应的菜单中出现,此时就可以对其进行测试和调试了。Apache JMeter,作为一款强大的性能测试工具,不仅支持对Web应用进行压力测试,还因其开源、可扩展性强的特性,允许开发者进行二次开发以满足特定的测试需求。确保JMeter能够正常运行,这将作为我们的基础测试平台和后续开发的基础。如果你计划构建自己的JMeter插件或者进行更复杂的项目管理,那么Maven或Gradle这样的构建工具是必不可少的。原创 2024-05-16 19:42:32 · 208 阅读 · 0 评论 -
面试官灵魂三问:Redis是什么?有什么作用?怎么测试?
比如,针对请求参数变化不大,返回的数据跟db中存储的数据很接近的情况,适合在“里面”缓存数据,也就是在更新db的同时更新缓存,这种情况最优的状态下,只需要读缓存就够了,不需要跟db直接交互,能大大缓解db压力。文件类型缓存是早些年非常流行的,比如火遍全国的织梦CMS,在后台编辑文章或者分类页面之后,更新缓存之后立即会生成多个文件,前台访问的时候实际都是访问缓存文件,以此加快访问速度,减少服务器和数据库压力。说完生成,再来说说缓存的更新,缓存在生成之后,正常都不会一成不变,所以需要对缓存进行更新。原创 2024-05-15 21:00:42 · 846 阅读 · 0 评论 -
行为驱动开源免费接口测试框架:karate
在BDT中,通常使用自然语言来描述测试场景和预期结果,以确保测试用例易于理解和编写。此外,BDT通常与特定的测试框架(如Cucumber)结合使用,以将自然语言描述转换为可执行的测试脚本。2. https://github.com/karatelabs/karate/releases 下载karate的jar包,保存到本地某个路径,例如:c盘。这个脚本测试了一个名为“Get all users”的 API 接口,该端点应该返回所有用户的列表。定义了测试套件的名称,在本例中为“My API Test”。原创 2024-05-15 20:59:18 · 349 阅读 · 0 评论 -
Jmeter 性能-电商系统TPS计算
还有一个概念并发线程数和并发用户数不是同一个概念,并发线程数是Jmeter里面的线程数,而并发用户数是需要通过tps来进行承载的,这个里面的并发用户数就是500tps。首先搞清楚一个概念:服务器的tps是有一个阈值的,要达到500tps ,用50个并发线程数和100并发线程数,或者200并发线程数都可以达到500tps。并发用户数是通过tps来承载的,你上面说的500tps,你就可以理解为并发用户数就是500tps,最高支持500个并发。并且Jmeter里面线程数加到超过500,Jmeter自身就会很卡。原创 2024-05-14 17:20:07 · 225 阅读 · 0 评论 -
开发&测试必须知道的 10种 常见软件架构模式
根据维基百科:架构模式是在软件架构上针对特定上下文件解决常见问题的通用、可复用的解决方案。架构模式与软件设计模式相似,但。原创 2024-05-14 17:18:57 · 414 阅读 · 0 评论 -
外包干了一个月,技术明显进步。。。。。
先说一下自己的情况,本科生,19年通过校招进入南京某软件公司,干了接近2年的功能测试,今年年初,感觉自己不能够在这样下去了,长时间呆在一个舒适的环境会让一个人堕落!而我已经在一个企业干了2年的功能测试,已经让我变得不思进取,谈了2年的女朋友也因为我的心态和工资和我分手了。于是,我决定要改变现状,冲击下大厂。原创 2024-05-13 22:08:19 · 1394 阅读 · 0 评论 -
摸爬滚打多年的打工人,总结了三条职场真理,绝不假大空!
后来大家才知道,原来她总是觉得麻烦别人是件特别不好意思的事情, 而且生怕别人会觉得自己一无是处,所以即便遇到不懂的地方也不敢开口去问同事,以至于别人一句话就能解决的事情,她要琢磨好久可能还解决不了。也许一听见批评就被“引爆”是人的本能反应,但真正的成长就是克服这种本能,管理好自己的“愤怒机制”,不被外界评价所绑架。有一次和同事搭伙做项目,前期分配任务时,他没有明确表达自己的想法,导致后面工作量很重,手头的工作也出现了纰漏,最终影响了整个项目的进展。所以,“随便”久了,你就真的不值钱了。朋友们,一起加油吧!原创 2024-05-13 22:05:59 · 370 阅读 · 0 评论 -
公司测试员用例写得乱七八糟,测试总监制定了这份《测试用例编写规范》
统一的规范,为测试设计人员提供测试用例编写的指导,提高编写的测试用例的可读性,可执行性、合理性。为测试执行人员更好执行测试,提高测试效率,最终提高公司整个产品的质量。原创 2024-05-13 17:17:06 · 502 阅读 · 0 评论 -
测试接口遇到APP加密?先来了解一下算法思路~
服务端与客户端进行http通讯时,为了防止被爬虫,数据安全性等,引入APP通信加密,简单来说,就是引入签名sign,APP的所有请求都会经过加密签名校验流程。由于引入签名sign请求头,我们在测APP接口的时候,不填签名数据的话,都会被服务端加密签名校验所拦截,这对我们测接口造成了极大的困扰。你可以将生成加密数据做成一个api提供给小伙伴使用,传入待加密的请求报文,返回加密数据,小伙伴复制粘贴加密数据到请求头,即可完成接口测试。询问开发具体的加密过程,复写一套加密算法,自己生成加密数据。原创 2024-05-11 16:17:38 · 632 阅读 · 0 评论 -
测试用例设计方法之因果图详解
因果图是从需求中找出因(输入条件)和果(输出或程序状态的改变),通过分析输入条件之间的关系(组合关系、约束关系等)及输入和输出之间的关系绘制出因果图,再转化成判定表,从而设计出测试用例的方法。该方法主要适用于各种输入条件之间存在某种相互制约关系或输出结果依赖于各种输入条件的组合时的情况注意: 1)所有的输入输出条件的相互制约关系以及组合关系 2)输出结果对输入条件的依赖关系。也就是什么样的输入组合会产生怎样的输出结果,即“因果关系”原创 2024-05-11 16:15:42 · 625 阅读 · 0 评论 -
Appium+Python3环境搭建,其实超简单!
1)下载安装地址:https://bitbucket.org/appium/appium.app/downloads/16(可以去官网下,也可以去网盘下,以我们公司的网速10k/s的网速,我果断 选择找人要了 个安装包)到这里环境就搭好了,在安装过程中遇到各种奇葩问题,若要问如何解决,那么请卸载完后,仔细阅读,从第一行开始,一步一步走下来,中间任何一个环境出问题,都会导致最后appium运行失败。3)设置三个环境变量:计算机--(右键)-->属性-->高级系统设置-->环境变量-->系统变量-->新建。原创 2024-05-10 16:32:33 · 756 阅读 · 0 评论 -
Python自动化测试五大框架(测试员收藏夹必备)
综上所述,在上述五种自动化测试的Python框架中,Pytest、Robot Framework和UnitTest可主要用于功能与单元测试,而Lettuce和Behave仅适用于行为驱动测试。通过进一步比较,我们认为:对于功能测试而言,Pytest是的。如果您是基于Python自动化测试的新手,那么RobotFramework是的入门工具。虽然其功能有所受限,但是它非常容易上手。对于基于Python的BDD测试而言,Lettuce和Behave同样优秀。原创 2024-05-10 16:31:15 · 990 阅读 · 0 评论 -
避开这12个压测误区保证有效压测
压测本质上其实就是经验的问题,至于技术我认为现在都是配套了,也有人配套的东西也搞不清,那还是经验的问题。提醒下,这篇对野路子玩压测的人蛮有用的。首先讲压测误区,每个误区我会简单的总结下,对于需要拓展的,我会在第二部分如何有效压测中去具体描述。最重要的是你能搞清楚为什么要压测,你这次的压测目的以及压测场景;写脚本只是你认为的第一步,因为你其他所谓性能的没有思路或者也不清楚。直接写脚本并不是最科学的一步。这是瀑布思维,大家都在聊测试左移,为什么性能测试不能左移呢?原创 2024-05-09 15:35:36 · 295 阅读 · 0 评论 -
UI自动化测试之Jenkins配置
团队下半年的目标之一是实现自动化测试,这里要吐槽一下,之前开发的测试平台了,最初的目的是用来做和性能测试,但由于各种原因,接口自动化测试那部分功能整个废弃掉了,其中和易用性有很大关系,另外,也和我们公司的接口业务也有关。不过性能测试功能开发同学用的很欢快,还有接口的管理,目前是连接前端与后端的重要桥梁。目前又加入了环境管理(我公司主要用docker创建开发和测试环境),最近又加入了需求管理与bug管理,所以,从“测试平台”变成了“研发协作平台”。为什么不用市面上主流的缺陷管理系统?例如,禅道,JIRA。原创 2024-05-09 15:34:45 · 415 阅读 · 0 评论 -
学会这些pytest-Allure常用特性allure.attach、allure.step、fixture、environment、categories
在Allure报告的首页可以展示此次测试执行的环境信息 (如测试环境、测试人员、被测系统版本号、系统配置环境等),这需要通过创建environment.properties或environment.xml进行配置,并把文件放置在--alluredir指定的文件夹中 (博主这里即result文件夹)。它们之间的区别在于,@allure.step()用于标记通用函数,当这个被标记的函数被调用后,会插入步骤说明并展示在Allure报告中。从结果可以看出来,两种方法都在报告中对应的测试用例中展示了附件内容。原创 2024-05-08 16:26:45 · 606 阅读 · 0 评论 -
Postman接口关联实战解析
在使用做接口测试时,有时候后面的接口需要获取前面接口的某一个返回值做为请求参数,这时就可以使用关联。如从A接口提取出a字段的值,供B接口的b字段使用。原创 2024-05-07 16:40:48 · 352 阅读 · 0 评论 -
Python接口自动化测试之【测试函数、测试类/测试方法的封装】
在python+pytest接口自动化系列中,我之前的文章基本都没有将代码进行封装,但实际编写自动化测试脚本中,我们都需要将测试代码进行封装,才能被测试框架识别执行。Win64;需要将代码封装成单元测试框架 (pytest或unittest) 能识别的测试函数或测试类,否则将不会被识别执行。需要加上断言,即结果与期望之间的对比,单元测试框架才能判定该用例执行结果是否通过,结果==期望则说明通过,否则失败。python中函数以及类的封装这里不做过多说明,pytest断言大家可以参考文章。原创 2024-05-06 20:53:13 · 1012 阅读 · 0 评论 -
给你一个网站如何测试?
如果需要高级的安全性测试,确定获得专业安全公司的帮助,外包测试,或者获取支持兼容性测试,根据需求说明的内容,确定支持的平台组合:浏览器的兼容性;数据库一般需要考虑连结性,对数据的存取操作,数据内容的验证等方面。,确定测试范围和测试策略,一般包括以下几个部分:功能性测试;2、提交功能的测试。链接是否正确跳转,是否存在空页面和无效页面,是否有不正确的出错信息返回。主要围绕,功能,页面 UI ,兼容,性能,安全,这几个方面去聊,首先是制定。4、对于必须但未安装的控件,是否提供自动下载并安装的功能文字检查。原创 2024-05-03 09:45:00 · 499 阅读 · 0 评论 -
外包干了2个月,技术退步明显了...
先说一下自己的情况,大专生,19年通过校招进入湖南某软件公司,干了接近4年的功能测试,今年8月份,感觉自己不能够在这样下去了,长时间呆在一个舒适的环境会让一个人堕落!而我已经在一个企业干了四年的功能测试,已经让我变得不思进取,谈了2年的女朋友也因为我的心态和工资和我分手了。于是,我决定要改变现状,冲击下大厂。原创 2024-05-01 09:30:00 · 580 阅读 · 0 评论 -
使用可视化docker浏览器,轻松实现分布式web自动化
顺着docker的发展,很多测试的同学也已经在测试工作上使用docker作为环境基础去进行一些自动化测试,这篇文章主要讲述我们在docker中使用浏览器进行自动化测试如果可以实现可视化,同时可以对浏览器进行相关的操作。原创 2024-05-02 08:45:00 · 865 阅读 · 0 评论 -
Pytest自动化测试框架---(单元测试框架)
是python自带的单元测试框架,它封装好了一些校验返回的结果方法和一些用例执行前的初始化操作,使得单元测试易于开展,因为它的易用性,很多同学也拿它来做功能测试和接口测试,只需简单开发一些功能(报告,初始化webdriver,或者http请求方法)便可实现。罢了,如果你查询中文互联网,你也只能找到寥寥数篇大致一样的用法,可以说pytest的精髓使用,没有被大家挖掘出来,如此强大的框架不应该被埋没,今天我就带领大家深入pytest使用,共同领略pytest的强大。多进程运行, X是进程数。原创 2024-04-30 17:05:43 · 375 阅读 · 0 评论 -
Jmeter生成可视化的HTML测试报告
也是可以生成测试报告的。Jmeter由于其体积小、使用方便、学习成本低等原因,在现在的性能测试过程中,使用率越来越高,但其本身也有一定的缺点,比如提供的测试结果可视化做的很一般。不过从3.0版本开始,jmeter引入了Dashboard Report模块,用于生成HTML类型的可视化图形报告(3.0版本的Dashboard Report模块会中文乱码,因此建议使用3.0以上的版本)。简单介绍下在利用jmeter进行性能测试时,生成HTML的可视化。。。原创 2024-04-29 17:04:36 · 374 阅读 · 0 评论 -
Jenkins-发送邮件配置
在构建执行完毕后,需要及时通知相关人员。因此在中是可以通过邮件通知的。原创 2024-04-29 16:57:41 · 316 阅读 · 0 评论 -
14:00面试,14:06就出来了,问的问题有点变态。。。
整份文档一共有将近 200 页,全部为大家展示出来肯定是不太现实的,为了不影响大家的阅读体验就只展示了部分内容,还望大家海涵,希望能帮助到您面试前的复习且找到一个好的工作,也节省大家在网上搜索资料的时间来学习!原创 2024-04-28 22:29:27 · 896 阅读 · 0 评论 -
【性能测试】Jenkins+Ant+Jmeter自动化框架的搭建思路
前面讲了Jmeter在性能测试中的应用及扩展。随着测试的深入,我们发现在性能测试中也会遇到不少的重复工作。比如某新兴业务处于上升阶段,需要在每个版本中,对某些新增接口进行性能测试,有时还需要在一天中的不同时段分别进行性能测试,如果一味地采取手动触发的方式,当接口数较多时,就会出现大量重复工作。这个时候我们应该思考,是否有一种方法,可以定时、批量运行已经设计好的Jmeter脚本,并自动输出。原创 2024-04-28 22:27:46 · 905 阅读 · 0 评论 -
从零开始学习:如何使用Selenium和Python进行自动化测试?
Selenium IDE 是嵌入到Firefox 浏览器中的一个插件,实现简单的浏览器操 作的录制与回放功能,IDE 录制的脚本可以可以转换成多种语言,从而帮助我们快速的开发脚本,下载地址:https://addons.mozilla.org/en-US/firefox/addon/selenium-ide/每条记录由字段组成,字段间的分隔符是其它字符或字符串,最常见的是逗号或制表符。需要对自动化重复编写的脚本进行重构(refactor),将重复的脚本抽取出来,放到指定的代码文件中,作为共用的功能模块。原创 2024-04-27 20:37:05 · 581 阅读 · 0 评论 -
微信小程序自动化测试实战,支持录制回放、智能遍历
如果需要测试指定页面,开发者可以在计划列表中配置多个页面及参数。当前置步骤执行(如有)完成后,云测服务将会检查指定页面是否存在 JsError 或黑白屏等问题。同时面对更多进阶需求,微信团队也扩展出更多功能,支持前置操作、测试指定页面、丰富多种后继模式等方式,助力开发者提升测试效率。如果开发者已配置前置步骤,开发者可以在完成测试任务后查看到关于前置步骤的执行情况,测试结果一目了然。新建测试计划后,开发者需要创建测试任务,选择测试过程的具体事项。前置操作耗时计入测试时长,开发者需要合理配置测试时长。原创 2024-04-27 16:55:45 · 778 阅读 · 0 评论 -
excel+requests管理测试用例接口自动化框架
部分接口访问时,响应未知用户,需要用session关联接口,先调用登录接口,把登录接口的调用封装成了一个实例方法,实现了复用,登录之后,登录接口的http响应会把session以 cookie的形式set到客户端,之后的接口都会使用此session去请求封装登录接口user_login.py。文件来管理,每个excel文件中有两个sheet页,第一个sheet页是接口的基本信息,包括接口名称,地址和请求方式,第二个sheet页为接口的测试用例,如下图所示。为了方便维护测试用例,一个接口的测试用例使用一个。原创 2024-04-26 16:16:11 · 685 阅读 · 0 评论 -
Jmeter工具+ant+jenkins实现持续集成
将JMeter所在目录下extras子目录里的ant-JMeter-1.1.1.jar复制到Ant所在目录lib子目录之下,这样Ant运行时才能找到"org.programmerplanet.ant.taskdefs. jmeter.JMeterTask"这个类,从而成功触发JMeter脚本。jmeter默认保存的是.jtl格式的文件,要设置一下bin/jmeter.properties,文件内容,保存jmeter.save.saveservice.output_format=xml。原创 2024-04-26 16:14:05 · 715 阅读 · 0 评论 -
软件测试之白盒测试与黑盒测试详解
对于很多刚开始学习软件测试的小伙伴来说,如果能尽早将黑盒、白盒测试弄明白,掌握两种测试的结论和基本原理,将对自己后期的学习有较好的帮助。今天,我们就来聊聊黑盒、白盒测试的相关话题。1、黑盒测试的方法和小结最常见黑盒测试方法包括:边界值、等价类、错误推测法、场景法、因果图法、判定表组成法、正交实验设计。边界值测试:边界值测试是一种最基本的黑盒测试方法,它是“等价类划分”这种测试方法的良好补充。但这种方法也存在弊端——大量冗余和漏洞。另外,由于布尔型的内容不存在边界的概念,所以边界值测试对布尔型无效。原创 2024-04-25 16:10:59 · 822 阅读 · 0 评论 -
自动化测试超详细总结
软件测试是软件开发过程中一个必不可少的环节。传统的软件测试方式通常是手动测试,即由专业的测试人员通过手动操作软件应用程序来验证其功能和性能。然而,这种方式存在许多缺点,例如时间耗费、测试结果不稳定、测试覆盖率不够高等。为了解决这些问题,自动化测试逐渐成为了主流的测试方式。自动化测试是通过使用特定的测试工具和框架来自动化执行软件测试任务的方法。它可以代替手动测试,提高测试效率和准确性,同时也可以支持更高的测试覆盖率和更全面的测试内容。原创 2024-04-25 16:10:04 · 840 阅读 · 0 评论