前言
接之前的三篇文章:
我于近期应用 VSCode 插件开发的这些知识,正式开始开发一款平时工作中用得上的插件,旨在提升自动化用例编写的效率。
但由于大家用的自动化框架都不一样,脚本的样子也不尽相同,因此这是业务、项目强相关的应用,无法通用,因此仅用于分享想法、思路。
主要功能
1. scripting.initConfiguration.
为了使插件在跨团队、跨周期中保持一定的通用性,因此使用了配置文件,在同一个人使用不同项目时,可以通过初始化这个配置文件,在不同项目中初始化后使用插件。
初始化(或者叫清空)插件的配置信息;


人性化考虑~
2. scripting.simplyRenderCase.
VSCode 中的代码块功能,无法动态插入内容,比较死板,因此想到解决这个死板问题。
调用 “用例管理平台”(我们公司有这么个平台)的接口填充至固定的用例模板,生成关键信息完整的基础用例。

用例模板:(图中红色箭头标注的地方就是调用 “用例管理平台” 的接口去填充的内容)


发现现有 VSCode 工具上功能的不足,利用代码能力解决该不足之处~
3. scripting.inheritFromMostSimilarCase.
作为一名测试开发,在日常工作中,编写自动化用例的时候,往往拿到一个用例的时候,不是马上进行编写(有些新功能除外),而是看与哪个用例比较像,找到后将其代码拷贝过来,对照当前的用例描述进行修改,最终完成当前用例的编写。
而看与哪个用例比较像比较费时费力,且找出来的用例不一定是最像的,效果往往不是很好,因此,我研发了这样一个功能,拿将当前要写的用例与已自动化的用例,取用例管理平台上的前置条件、步骤、预期结果等进行文字的相似性比对得到相似性值。当已自动化的用例逐一与当前要写的用例进行相似性比对后,我们最终能够得到一个与当前用例相似性最大的用例编号。
复制这个相似性最大的用例编号的用例,同时修改用例的关键信息为当前用例的关键信息,最终生成当前用例的自动化用例。
从已自动化的用例中寻找与当前用例最像的用例,同时集成了 scripting.simplyRenderCase 方法的部分功能,插入了用例的关键信息,生成的用例脚本更完整也更贴合当前的用例。





有了这个功能,在寻找最相似用例上排除了主观性,使得这个过程足够客观,结果可信度高!
4. scripting.getTopSimilarCases.
作为一名测试开发,在日常工作中,经常遇到写完一个用例,过一阵子写另一个用例的时候,发现相似性比较高的用例,现在想再写一个类似的用例,要重新理解整个或大部分过程,即:思路断了重来~
因此,我研发了这个功能,使编写用例的人员,在编写用例前,可以使用这个功能,从 “用例管理平台” 上获取与当前用例最接近的 5 个用例,然后在编写用例的时候,我们就可以一次性对几个用例一起规划(不一定是 5 个,因为有时候相似性很低,可能只有 1 个甚至都不适合一起写)。
在编写脚本前(或使用 scripting.inheritFromMostSimilarCase 方法前后),使用本功能查询与当前用例相似性最高的 5 个用例,使得批量规划、编写用例成为可能!




注:用例搜索条件此处未截图。



从测开工作人员的日常工作角度出发,解决了 “碎片的工作内容不容易保证思路连续性” 的问题~
5. scripting.getAllAutomatedCases.
作为一名测试开发人员,经常会关心(或者被关心)已自动化的用例数量、用例的优先级等、各优先级自动化的数量有多少等,虽然 “用例管理平台” 提供了查询接口和页面,但不够直接,因此研发这样的功能,能够在编写脚本的时候,一键知道结论。
获取本地代码中,已自动化的用例,归类、统计,方便随时得出自动化方面的数据。


能快速得到自动化方面的数据,非常有用~
6. scripting.getNotMarkedAsAutomatedCases.
作为一名测试开发人员,当我完成脚本后,需要给 QA 人员 review,review 完成后,QA 会在 “用例管理平台” 上标注该用例为已自动化,我通常会再看下是否正确标注,并且通常测试开发人员是写完几个(例如 10 个)才给 QA review,这时候我就要一个一个点开链接去验证,此时比较费劲,还容量遗漏。
因此,我就研发这样一个功能,自动找出本地代码中已经写好的脚本,但 “用例管理平台” 上还未标注为已自动化的脚本,这样不用切应用去校验标记结果,不仅效率提升了,而且还不会遗漏;
自动找出本地代码中已经写好但 “用例管理平台” 上还未标注为已自动化的用例。



重复性的工作交给机器,既省时省力又靠谱~
7. scripting.replaceKeyInfoForCase.
在写脚本的时候,有时候已经明确可以拷贝哪个用例了,这时候直接复制而不使用插件的功能,但复制后的用例关键信息也还是被复制的用例的,我需要去 “用例管理平台” 上一个一个复制到新用例里头,因此增加这个小功能,能自动获取用例的关键信息,并替换。
自动获取用例的关键信息,并替换当前选中的文本,即替换用例的关键信息。
例如,下图中用例 RCW-1344 为复制 RCW-2660 的用例,高亮部分为用例的关键信息,这些还是 RCW-2660 的,当我只想替换这些关键信息为 RCW-1344 的,我们只需要选中这个关键信息块,然后鼠标右键使用 scripting.replaceKeyInfoForCase 功能,如下:




上图中的 6 个地方均会被动态替换为 “用例管理平台” 上的信息~
功能虽小,还是具有一定的使用场景,不失为一个好的小功能~
以上就是我近期研发的几个辅助脚本编写、辅助日常工作的插件功能,这些功能可以通过鼠标右键或者快捷键触发,简单快速,对我日常工作起到了一定的帮助。
我想,未来可以以此为入口,在日常的工作积累与思考之上,将更多想法与功能集成到插件中,特别是与 “用例管理平台” 交互上十分值得做更多集成,相信这个插件能对我的工作起到越来越多的帮助。
对于这个插件,您有什么想法或建议吗?欢迎在评论区留下宝贵的意见与建议!
如果本文对您有帮助,麻烦点赞、关注!
感谢~
在选择我想要运行操作的频率时,唯一的选项是“每天”、“每小时”和“每10分钟”。谢谢!我想为我的Rails3.1应用程序运行调度程序。 最佳答案 这不是一个优雅的解决方案,但您可以安排它每天运行,并在实际开始工作之前检查日期是否为当月的第一天。 关于ruby-如何每月在Heroku运行一次Scheduler插件?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/8692687/
我对最新版本的Rails有疑问。我创建了一个新应用程序(railsnewMyProject),但我没有脚本/生成,只有脚本/rails,当我输入ruby./script/railsgeneratepluginmy_plugin"Couldnotfindgeneratorplugin.".你知道如何生成插件模板吗?没有这个命令可以创建插件吗?PS:我正在使用Rails3.2.1和ruby1.8.7[universal-darwin11.0] 最佳答案 随着Rails3.2.0的发布,插件生成器已经被移除。查看变更日志here.现在
我正在编写一个包含C扩展的gem。通常当我写一个gem时,我会遵循TDD的过程,我会写一个失败的规范,然后处理代码直到它通过,等等......在“ext/mygem/mygem.c”中我的C扩展和在gemspec的“扩展”中配置的有效extconf.rb,如何运行我的规范并仍然加载我的C扩展?当我更改C代码时,我需要采取哪些步骤来重新编译代码?这可能是个愚蠢的问题,但是从我的gem的开发源代码树中输入“bundleinstall”不会构建任何native扩展。当我手动运行rubyext/mygem/extconf.rb时,我确实得到了一个Makefile(在整个项目的根目录中),然后当
我已经在Sinatra上创建了应用程序,它代表了一个简单的API。我想在生产和开发上进行部署。我想在部署时选择,是开发还是生产,一些方法的逻辑应该改变,这取决于部署类型。是否有任何想法,如何完成以及解决此问题的一些示例。例子:我有代码get'/api/test'doreturn"Itisdev"end但是在部署到生产环境之后我想在运行/api/test之后看到ItisPROD如何实现? 最佳答案 根据SinatraDocumentation:EnvironmentscanbesetthroughtheRACK_ENVenvironm
我们的git存储库中目前有一个Gemfile。但是,有一个gem我只在我的环境中本地使用(我的团队不使用它)。为了使用它,我必须将它添加到我们的Gemfile中,但每次我checkout到我们的master/dev主分支时,由于与跟踪的gemfile冲突,我必须删除它。我想要的是类似Gemfile.local的东西,它将继承从Gemfile导入的gems,但也允许在那里导入新的gems以供使用只有我的机器。此文件将在.gitignore中被忽略。这可能吗? 最佳答案 设置BUNDLE_GEMFILE环境变量:BUNDLE_GEMFI
这似乎非常适得其反,因为太多的gem会在window上破裂。我一直在处理很多mysql和ruby-mysqlgem问题(gem本身发生段错误,一个名为UnixSocket的类显然在Windows机器上不能正常工作,等等)。我只是在浪费时间吗?我应该转向不同的脚本语言吗? 最佳答案 我在Windows上使用Ruby的经验很少,但是当我开始使用Ruby时,我是在Windows上,我的总体印象是它不是Windows原生系统。因此,在主要使用Windows多年之后,开始使用Ruby促使我切换回原来的系统Unix,这次是Linux。Rub
我正在玩HTML5视频并且在ERB中有以下片段:mp4视频从在我的开发环境中运行的服务器很好地流式传输到chrome。然而firefox显示带有海报图像的视频播放器,但带有一个大X。问题似乎是mongrel不确定ogv扩展的mime类型,并且只返回text/plain,如curl所示:$curl-Ihttp://0.0.0.0:3000/pr6.ogvHTTP/1.1200OKConnection:closeDate:Mon,19Apr201012:33:50GMTLast-Modified:Sun,18Apr201012:46:07GMTContent-Type:text/plain
无论您是想搭建桌面端、WEB端或者移动端APP应用,HOOPSPlatform组件都可以为您提供弹性的3D集成架构,同时,由工业领域3D技术专家组成的HOOPS技术团队也能为您提供技术支持服务。如果您的客户期望有一种在多个平台(桌面/WEB/APP,而且某些客户端是“瘦”客户端)快速、方便地将数据接入到3D应用系统的解决方案,并且当访问数据时,在各个平台上的性能和用户体验保持一致,HOOPSPlatform将帮助您完成。利用HOOPSPlatform,您可以开发在任何环境下的3D基础应用架构。HOOPSPlatform可以帮您打造3D创新型产品,HOOPSSDK包含的技术有:快速且准确的CAD
在应用开发中,有时候我们需要获取系统的设备信息,用于数据上报和行为分析。那在鸿蒙系统中,我们应该怎么去获取设备的系统信息呢,比如说获取手机的系统版本号、手机的制造商、手机型号等数据。1、获取方式这里分为两种情况,一种是设备信息的获取,一种是系统信息的获取。1.1、获取设备信息获取设备信息,鸿蒙的SDK包为我们提供了DeviceInfo类,通过该类的一些静态方法,可以获取设备信息,DeviceInfo类的包路径为:ohos.system.DeviceInfo.具体的方法如下:ModifierandTypeMethodDescriptionstatic StringgetAbiList()Obt
之前在培训新生的时候,windows环境下配置opencv环境一直教的都是网上主流的vsstudio配置属性表,但是这个似乎对新生来说难度略高(虽然个人觉得完全是他们自己的问题),加之暑假之后对cmake实在是爱不释手,且这样配置确实十分简单(其实都不需要配置),故斗胆妄言vscode下配置CV之法。其实极为简单,图比较多所以很长。如果你看此文还配不好,你应该思考一下是不是自己的问题。闲话少说,直接开始。0.CMkae简介有的人到大二了都不知道cmake是什么,我不说是谁。CMake是一个开源免费并且跨平台的构建工具,可以用简单的语句来描述所有平台的编译过程。它能够根据当前所在平台输出对应的m