美文网首页自动化测试Appium
使用python+Behave编写测试用例

使用python+Behave编写测试用例

作者: kawa007 | 来源:发表于2018-07-31 14:40 被阅读563次

前言

python元素定位

python的BDD框架,参考这里

demo在这里

除了官方提供的Appium-Python-Client框架,还有一个非官方由网易开源的python客户端facebook-wda,facebook-wda这个库的功能非常强大,可以取代appium,不过只支持python,Appium支持多种脚本编写。

环境准备

1、安装python3

brew install python3

2、安装Appium-Python-Client

pip3 install Appium-Python-Client

3、安装Behave

pip3 install behave

4、查看Behave支持的语言

behave --lang-list
Languages available:
ar: العربية / Arabic
bg: български / Bulgarian
ca: català / Catalan
cs: Česky / Czech
cy-GB: Cymraeg / Welsh
da: dansk / Danish
de: Deutsch / German
en: English / English
en-Scouse: Scouse / Scouse
en-au: Australian / Australian
en-lol: LOLCAT / LOLCAT
en-pirate: Pirate / Pirate
en-tx: Texan / Texan
eo: Esperanto / Esperanto
es: español / Spanish
et: eesti keel / Estonian
fi: suomi / Finnish
fr: français / French
gl: galego / Galician
he: עברית / Hebrew
hr: hrvatski / Croatian
hu: magyar / Hungarian
id: Bahasa Indonesia / Indonesian
is: Íslenska / Icelandic
it: italiano / Italian
ja: 日本語 / Japanese
ko: 한국어 / Korean
lt: lietuvių kalba / Lithuanian
lu: Lëtzebuergesch / Luxemburgish
lv: latviešu / Latvian
nl: Nederlands / Dutch
no: norsk / Norwegian
pl: polski / Polish
pt: português / Portuguese
ro: română / Romanian
ru: русский / Russian
sk: Slovensky / Slovak
sr-Cyrl: Српски / Serbian
sr-Latn: Srpski (Latinica) / Serbian (Latin)
sv: Svenska / Swedish
tr: Türkçe / Turkish
uk: Українська / Ukrainian
uz: Узбекча / Uzbek
vi: Tiếng Việt / Vietnamese
zh-CN: 简体中文 / Chinese simplified
zh-TW: 繁體中文 / Chinese traditional

5、查看对应语言的关键字

behave --lang-help zh-CN
Translations for Chinese simplified / 简体中文
             And: 而且<
      Background: 背景
             But: 但是<
        Examples: 例子
         Feature: 功能
           Given: 假如<
        Scenario: 场景
Scenario Outline: 场景大纲
            Then: 那么<
            When: 当<

创建一个iOS测试工程

image.png

写测试脚本

1、创建如下目录结构

├── app # 待测app
│   └── TestApp.app
└── features
    ├── calculate.feature # behave待测功能定义
    ├── environment.py # 环境配置
    └── steps
        └── step.py # 测试steps

2、测试求和功能

创建calculate.feature,输入如下内容

#language: zh-CN
功能: 求和
    场景: 计算两个数相加
        假如 第一个值输入 10
        而且 第二个值输入 20
        当 点击 求和按钮
        那么 结果应该为30

3、配置环境

创建environment.py,输入如下内容

# -*- coding: utf-8 -*
import os
from appium import webdriver

def before_feature(context, feature):
    app = '/Users/yangfangming/Desktop/TestDemo/app/TestApp.app'
    context.driver = webdriver.Remote(
        command_executor='http://127.0.0.1:4723/wd/hub',
        desired_capabilities={
            'app': app,
            'platformName': 'ios',
            'deviceName': 'iPhone 8',
            'platformVersion': '11.1',
            'bundleId': 'com.yfm.TestApp'
        })

def after_feature(context, feature):
    context.driver.quit()

4、创建steps

创建step.py,输入如下内容

# -*- coding: utf-8 -*
from behave import *

@given(u'第一个值输入 10')
def step_impl(context):
    el = context.driver.find_element_by_accessibility_id('textfield1')
    el.clear()
    el.set_value("10")



@given(u'第二个值输入 20')
def step_impl(context):
    el = context.driver.find_element_by_accessibility_id('textfield2')
    el.clear()
    el.set_value("20")


@when(u'点击 求和按钮')
def step_impl(context):
    el = context.driver.find_element_by_accessibility_id('sum')
    el.click()


@then(u'结果应该为30')
def step_impl(context):
    # el = context.driver.find_element_by_accessibility_id('result')
    el = context.driver.find_element_by_class_name('XCUIElementTypeStaticText')
    actual = el.get_attribute('value')
    print(actual)
    assert actual=='30', 'result is 30'

运行测试

behave
# 或者
behave --lang zh-CN

参考

https://github.com/appium/python-client

https://github.com/serhatbolsu/appium-python-bdd/blob/master/testhive/features/steps/steps.py

https://github.com/behave/behave

http://www.runoob.com/python3/python3-tutorial.html

相关文章

  • 使用python+Behave编写测试用例

    前言 python元素定位 python的BDD框架,参考这里 demo在这里 除了官方提供的Appium-Pyt...

  • 软件测试基本流程

    1.需求分析(产品经理) 2.编写测试用例(测什么,怎么测) 3.评审测试用例 4.搭建测试环境 5.等待开发提交...

  • pytest使用步骤&查看执行结果

    >>pytest使用步骤 1、导入pytest 2、编写测试用例:1)无需在测试类下编写测试用例可以直接编写测试函...

  • 1.软件测试流程

    1.需求分析 2.编写测试用例(测什么,怎么测) 3.评审测试用例 4.搭建测试环境 5.等待开发提交测试包 6....

  • APP功能测试点总结(转载)

    1.功能性测试: ——根据产品需求文档编写测试用例。 ——软件设计文档编写用例。 注意:就是根据产品需求文档编写测...

  • APP测试点全面总结(上)

    1.功能性测试: ——根据产品需求文档编写测试用例。 ——软件设计文档编写用例。 注意:就是根据产品需求文档编写测...

  • APP测试点总结(全面)

    1.功能性测试: ——根据产品需求文档编写测试用例。 ——软件设计文档编写用例。 注意:就是根据产品需求文档编写测...

  • 软件测试常见问题

    1、软件测试流程是什么? ①需求分析,需求评审②编写测试计划③编写测试用例,用例评审④执行测试,提交bug,回归测...

  • 第六次分享之等价类

    6.24分享了关于测试用例编写及实践相关,针对等价类应用练习如下: 使用等价类编写如下: 编写测试用例时,将上...

  • 测试用例模板设计需要了解的点

    测试用例是进行测试的最小单元粒度。在编写测试用例之前需要很多准备工作去分析需求,提取测试点,然后根据提取的测...

网友评论

    本文标题:使用python+Behave编写测试用例

    本文链接:https://www.haomeiwen.com/subject/ichhvftx.html