cucumber-JVM for behave自动化框架(一)

之前公司的大神搞了个java+cucumber的框架,我看现在python比较火, 并且上手简单, 更容易推广,决心把这个框架改成python的,在此记录下过程:
一. 先介绍下我们的java+cucumber自动化框架
1.首先是cucumber, (行为驱动的一种工具),这里也就是cucumber是BDD的一种工具, 比如我们要用bdd这种形式(或思想)做些项目上的事情, 那么可以选择cucumber.

  1. Cucumber 可以使用文本使用的语言叫做 Gherkin, 说这个Gherkin之前, 我们先来聊下敏捷开发中写story, 当然写法应该有不少种, 但我觉得比较好且规范的一种写法,就是使用Gherkin种的Given, When, Then这一套. 所以说到这里, 我感觉如果在项目中实施BDD, 理想状态是写的story里面的每个scenairo我们可以拿来作为测试用例(当然补充肯定还是要补充一些测试用例), 然后功能测试完这些scenairo, 可以直接对这些scenairo实现自动化, 这样可以免去story, 功能测试用例, 自动化用例差别很大的烦恼, 免去很多重复工作. 当然正如一些博文中提到的, 推广cucumber乃至bdd, 都要求整个团队的人员质量要很高, 这在公司中基本不存在. 所以感觉这是痛点. 这篇文章有提及: 用Cucumber理解BDD行为驱动开发
    感谢

  2. 然后我们准备好我们的自动化cases, 类似于这样:
    在这里插入图片描述
    这里就是我上面说的测试用例.这里就是自然语言以一定的格式组织的, 当然也是可以用中文的.

  3. 对于上面的自然语言, 也就是我们平时手动执行的功能测试用例, 那我们如何让它们自动执行---->脚本, 我们要把每一句自然语言对应着我们的code, 接下来就到了框架的step部分, 如下:
    在这里插入图片描述

  4. 可能是疏于整理, 可能是我想以更白话的方式把东西呈现给大家, 不过我感觉老外写的博客一般都通俗易懂, 国人还是喜欢搞的很玄乎. 继续流水账吧:
    上面大家可以看到我们这个step里面有很多page, 对的, 这里采用的就是大家常用的page object和page factory模式, 这里每个page一般放的是该page里面对应的元素的一些定位信息, 那么怎么写,示例, 以及page factoryt在这里是这样理解, 大家可以参考这篇文章: Selenium之使用PageFactory初始化pageobject
    其实这里
    “Selenium2 引入了PageObject的思想,将每个页面的控件和操作封装成一个个Page类,然后在实现业务逻辑时,只需要调用对应的Page类即可。
    PageFactory则是为了支持PageObject而产生的,可以通过InitElements方法给Page类传递driver,当执行到WebElement时,driver在当前的页面中查找元素,这样不需要对WebElement进行实例化.”
    可能我java水平差, 我不是很理解透彻, 大家也可以一起讨论 当然在这里还是要谢谢作者. 当然对使用这些, 我还是很熟悉的.

综合以上, 我觉得这就凑成了我们这个框架的3层, features–steps–pages, 当然我们这个框架还有很多东西, 请看下节.

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值