python selenium T5
lettuce : BDD 行为驱动测试
$pip3 install lettuce
EG1 :
$ cat test_lettuce.py
#!/usr/bin/env python
# -*- coding: utf-8 -*-
from lettuce import *
@step('I have the number (d+)')
def have_the_number(step, number):
world.number = int(number)
@step('I compute its factorial')
def compute_its_factorial(step):
world.number = factorial(world.number)
@step('I see the number (d+)')
def check_number(step, expected):
expected = int(expected)
assert world.number == expected,
"Got %d" % world.number
def factorial(number):
number = int(number)
if (number == 0) or (number == 1):
return 1
else:
return number * factorial(number-1)
$ cat features/zero.feature Feature: Compute factorial In order to play with Lettuce As beginners We'll implement factorial Scenario: Factorial of 0 Given I have the number 0 When I compute its factorial Then I see the number 1 Scenario: Factorial of 1 Given I have the number 1 When I compute its factorial Then I see the number 1 Scenario: Factorial of 2 Given I have the number 2 When I compute its factorial Then I see the number 2 Scenario: Factorial of 3 Given I have the number 3 When I compute its factorial Then I see the number 6
Result:
$ lettuce
Feature: Compute factorial # features/zero.feature:1
In order to play with Lettuce # features/zero.feature:2
As beginners # features/zero.feature:3
We'll implement factorial # features/zero.feature:4
Scenario: Factorial of 0 # features/zero.feature:6
Given I have the number 0 # test_lettuce.py:11
When I compute its factorial # test_lettuce.py:16
Then I see the number 1 # test_lettuce.py:21
Scenario: Factorial of 1 # features/zero.feature:11
Given I have the number 1 # test_lettuce.py:11
When I compute its factorial # test_lettuce.py:16
Then I see the number 1 # test_lettuce.py:21
Scenario: Factorial of 2 # features/zero.feature:16
Given I have the number 2 # test_lettuce.py:11
When I compute its factorial # test_lettuce.py:16
Then I see the number 2 # test_lettuce.py:21
Scenario: Factorial of 3 # features/zero.feature:21
Given I have the number 3 # test_lettuce.py:11
When I compute its factorial # test_lettuce.py:16
Then I see the number 6 # test_lettuce.py:21
1 feature (1 passed)
4 scenarios (4 passed)
12 steps (12 passed)
EG2 :
使用lettuce webdriver 自动化测试