自动化测试之BDD

Posted on 周日 26 二月 2017 in [自动化测试] • Tagged with [BDD]Leave a comment

很久没更博了,不记录点什么会觉得脑子空空的。
前些天在重构接口测试框架的时候,突发奇想的一个念头:就是要采用BDD方式来用作接口测试的数据驱动。于是花了一天时间简单学习了一下python的BDD框架-behave,并做了一个小实践。过程与结果,还算很满意。写此文章,向这些开源工具的贡献者们致敬!

什么是BDD

BDD全称Behavior Driven Development,译作 行为驱动开发,是基于TDD (Test Driven Development 测试驱动开发)的软件开发过程和方法。

BDD可以让项目成员(甚至是不懂编程的)使用自然语言来描述系统功能和场景,从而根据这些描述步骤进行系统自动化的测试。

常用BDD框架

目前常用的BDD框架有:ruby的cucumber,python的behave、lettuce等。
所实践项目 使用python开发自动化测试代码,故选用behave框架。总结从环境搭建 到运用 以及最后的测试报告集成到Jenkins上展示。

Behave使用介绍

1、安装

pip install behave ---首次安装  
pip install -U behave ---更新

2、运行第一个测试

测试的功能场景——测试网站的登录功能:
账号密码输入正确--登录成功;
账号密码输入错误--登录失败。

建立框架结构
$PROJECT/
+-- features/                   -- Contains all feature files.
|       +-- steps/
|       |     +-- login.py      -- Step definitions for features.
|       +-- reports/            -- Save test reports
|       |      +-- jsonDumps/   -- Save behave json reports
|       |      +-- jsonReports/ -- Save behave to cucumber json reports
|       +-- environment.py      -- Environment for global setup...
|       +-- login.feature       -- Feature files.
Behave 框架说明:
  • features/.feature文件用于编写测试场景,可以把各种场景和数据写在里面,支持中文;
  • steps/.py文件就是根据所写的测试场景和数据来执行测试;
  • features/.feature文件与steps/.py文件必须一一对应。
  • features/.environment.py 用作测试环境统一配置。
environment.py 部分方法说明
  • before_step(context, step), after_step(context, step)
    These run before and after every step.

  • before_scenario(context, scenario), after_scenario(context, scenario)
    These run before and after each scenario is run.

  • before_feature(context, feature), after_feature(context, feature)
    These run …

Continue reading