Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

VSCode 插件在 kooltest 自动化测试的开发实践 #36

Open
rottenpen opened this issue Aug 24, 2021 · 0 comments
Open

VSCode 插件在 kooltest 自动化测试的开发实践 #36

rottenpen opened this issue Aug 24, 2021 · 0 comments
Labels
vscode vscode 插件相关 工程化

Comments

@rottenpen
Copy link
Owner

rottenpen commented Aug 24, 2021

VsCode 插件在 kooltest 自动化测试的开发实践

背景

Kooltest 是酷家乐研发的一个支持多终端的 UI 自动化测试框架。为了给用户提供更优质的产品体验,在产品上线前需要进行各项测试。其中回归测试多由测试人员手动执行,耗费了大量人力,并且还可能存在漏测问题。鉴于此,我们在跨端的 UI 自动化上面做了大量的优化和思考,实现了 KoolTest 的 跨端 UI 自动化测试方案,用以降低人力成本。目前本框架支持使用一套脚本规范来测试 Android、iOS、Web。

通过 DSL 语言来提高开发效率

BDD 行为驱动开发(Behavior Driven Development)核心的是,开发人员、QA、非技术人员和用户都参与到项目的开发中,彼此协作。BDD 强调从用户的需求出发,最终的系统和用户的需求一致。BDD 验证代码是否真正符合用户需求,因此 BDD 是从一个较高的视角来对验证系统是否和用户需求相符。

直接上代码:

https://qhstaticssl.kujiale.com/newt/101463/image/png/1629774730544/C4C4E6522B57480C507A891B4AC7FB97.png

通过这种基于 cucumber 设计的语义化 DSL 语言轻松可以实现高开发效率,低阅读成本的目标。

提高 DSL 语言的开发效率

有了测试框架和规范的 DSL 语言,我们还有什么事情要做呢?我们需要的是从编写开始的一整套 DevOps 体系。

https://qhstaticssl.kujiale.com/newt/101897/image/png/1629777798699/93E4940EC2CFE86C80F63073CC950999.png

而本文要介绍的是,我们是怎么通过 VsCode 插件来提高测试脚本开发体验的。

Start

kool-test-script 提供的核心能力有:

  • 编码辅助:基于 DSL 规范提供代码提示(自动补全、信息提示和定义跳转)、代码重构和代码片段等功能,覆盖场景多响应快准确率高,提升编码幸福感。
  • Debug辅助:提供运行测试脚本的能力,动态生成测试报告。
  • 录制行为:在一些需要模拟鼠标操作/截图的场景,可以通过录制 Macro脚本的形式,记录下鼠标键盘的操作,自动生成具体的 DSL 代码。

VS Code 插件提供一些可以帮你更快开发脚本并且可以快速浏览,脚本运行的结果。

快速开始

  1. 安装 java 环境 https://docs.oracle.com/goldengate/1212/gg-winux/GDRAD/java.htm#BGBFJHAB
  2. 点击 VS Code 活动栏上的「插件商店图标」搜索 kool-test-script 或者在 VsCode 市场下载 Kooltest 插件
  3. 在 VsCode 创建一个 *.feature 文件,插件将自动为 feature 填充好模版。
  4. 即可按照你所想编写你的 kooltest 脚本了。

自动补全

代码补全 (Code Completion) 提供即时类名、方法名和关键字等预测,辅助开发人员编写代码,大幅提升开发效率。

Kooltest 所使用的 DSL 语法是魔改自 Cucumber 提供 gherkin 语言,为了更好编写我们的 gherkin,我们需要对我们设计的关键字,方法名,文件路径等提供高亮和预测。

kool-test-script 增强了测试人员经常使用的 gherkin 及样式相关文件的代码补全体验。

https://qhstaticssl.kujiale.com/newt/101463/image/gif/1629774893779/8756842DD142D5B1BA983872D17AD8B1.gif

*.feature文件

脚本核心文件 feature 可以在编辑器里直接运行脚本

Kapture 2021-08-19 at 12.20.35.gif

自动填充模版

https://qhstaticssl.kujiale.com/newt/103016/image/gif/1629773195621/7F450F9F39CAC3F5CF7B3288943218A4.gif

*.macro 文件

对于提供脚本复用能力的宏指令文件,我们提供了辅助录制键盘鼠标行为的能力。

Command + 鼠标点击自动跳转到对应 macro 文件

https://qhstaticssl.kujiale.com/newt/101463/image/gif/1629773942136/58DA810319ED7AA606D57F676E30A3C4.gif

录制鼠标键盘的能力

https://qhstaticssl.kujiale.com/newt/101463/image/gif/1629774382141/880F3CE069ACD524CD8EF1394C585058.gif

日志系统

运行脚本的时候,脚本会直接在 Terminal 上运行, 并记录如果脚本出错无法进行下去,代码会在哪个行为出错,定位到脚本具体的行为。

在结束进程之后,kooltest 脚本会自动生成对应日志文件。

https://qhstaticssl.kujiale.com/newt/101463/image/gif/1629773568512/ECDA19578AB1F0DA8AA32157F2C93065.gif

@rottenpen rottenpen added the vscode vscode 插件相关 label Aug 24, 2021
@rottenpen rottenpen changed the title VsCode 插件在 kooltest 自动化测试的开发实践 VSCode 插件在 kooltest 自动化测试的开发实践 Sep 1, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
vscode vscode 插件相关 工程化
Projects
None yet
Development

No branches or pull requests

1 participant