首页 游戏教程 正文

bdd自动化测试怎么写?手把手教你写出高质量验收脚本!

以前那会儿,我们团队内部沟通简直就是灾难。开发、测试、产品,三个人三个标准,每次开会吵得脸红脖子粗。最要命的是,需求文档写得跟天书一样,开发说他做完了,测试说不对,产品经理又说他们想要的根本不是这个。

我就琢磨着,得找个东西把咱们都绑一块儿,用一套大家都能看懂的语言说话,把验收标准从代码里解放出来,写成人话。

bdd自动化测试怎么写?手把手教你写出高质量验收脚本!

后来我翻资料,找到了BDD(行为驱动开发)。那套“Given-When-Then”(假如-当-那么)的写法,我一看就觉得靠谱。它把复杂的技术细节全藏起来了,只露出最直观的业务步骤。

第一步:统一语言,写 Feature 文件

我立马把产品经理抓过来,给他演示了一遍,告诉他,以后需求验收标准就得这么写,跟讲故事似的。我们把每个功能都写成一个个“Feature”文件,用的就是 Gherkin 语法。

bdd自动化测试怎么写?手把手教你写出高质量验收脚本!

我们不再写什么“测试用例ID:TC001”,而是直接写:

  • 功能:用户登录
  • 背景:用户已经注册并记住了密码
  • 场景:正确的用户名和密码登录
  • 假如我打开了登录页面
  • 当我输入了正确的用户名“张三”和密码“123456”
  • 并且我点击了登录按钮
  • 那么我应该看到首页并显示“欢迎回来,张三”

这样写出来,谁也跑不掉。产品经理看到了验收标准,开发也知道边界在哪儿。这成了我们开发前的第一份“合同”。

第二步:撸起袖子干:搭框架和写步骤定义

光写故事没用,得让电脑自己跑起来。我选了Behave(Python那套),因为它上手快,跟我们的自动化框架接起来比较顺手。用Cucumber或者SpecFlow都行,核心思想都一样。

接下来就是最费劲的,我得把这个自然语言的 Feature 文件跟我们现有的自动化代码接起来,这叫“步骤定义”(Step Definition)。

比如上面那个例子:

假如我打开了登录页面

我得在我的自动化代码里,写一个函数,把“打开了登录页面”这句人话翻译成代码里的操作:调用浏览器,输入网址,等等。我用了 Playwright 库,所以代码就是一行行的页面操作。

我花了三天时间,把我们最核心的十几个业务步骤都封装成了可复用的代码片段。比如:“点击提交按钮”、“验证数据是否保存成功”、“输入有效数字”等等。

第三步:实现高质量验收脚本

一旦基础步骤定义搭好了,后面写新的脚本就快了。我们不再是写一行代码对应一个操作,而是直接调用那些已经封装好的步骤。脚本看起来就像一个填空游戏,效率飞涨。

我们现在跑自动化,直接给老板看 Feature 文件的执行结果。绿了,就是通过了,大家都没话说。如果跑红了,我们能一眼看到是哪个业务场景、哪个“当”或者“那么”出了问题,定位 bug 速度比以前快了三倍。

BDD 这东西,我实践下来觉得,本质不是什么高深的技术活,它是个沟通工具。我从一个只会写代码的测试,变成了一个能跟产品经理一起定义验收标准的‘沟通桥梁’。高质量的验收脚本,不是代码写得多漂亮,而是所有人对“高质量”这俩字理解是否一致。实践证明,这套路子,贼好使。

相关推荐