python+appium+behave自动化埋点回归测试(2)

搞清楚了相关概念就可以开始尝试用python+appium+behave进行自动化埋点回归测试了

环境搭建

装好python3、appium之后, 用pip 命令安装behave框架

pip install  behave

查看 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

查看简体中文的关键字

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

写测试脚本

1、创建如下目录结构

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

2、测试手机自带计算器的求和功能

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

3、创建环境配置文件environment.py

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

def before_feature(context, feature):
    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.android.calculator2'
        })

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

before_feature 方法是在feature文件运行 之前执行的方法,appium控制手机的一些参数就在这里定义。
after_feature方法是在feature文件运行完毕之后执行的方法。
还有before_scenario、after_scenario、before_step、after_step等方法。

4、创建steps.py 输入以下内容

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

@when(u'第{num}个值输入{value}')
def step_impl(context):
    el = context.driver.find_element_by_id('com.android.calculator2:id/display')
    el.clear()
    el.send_keys(value)

@when(u'点击{action}')
def step_impl(context):
	jia = 'com.android.calculator2:id/plus'
	jian = 'com.android.calculator2:id/minus'
	cheng = 'com.android.calculator2:id/mul'
	chu = 'com.android.calculator2:id/div'
	deng = 'com.android.calculator2:id/equal'
	if action == '加号'id = jia
    elif action == '减号'id = jian
   	elif action == '乘号'id = cheng
	elif action == '除号'
		id = chu
	else:
		id = deng
   	el = context.driver.find_element_by_accessibility_id(id)
    el.click()


@then(u'断言验证结果应该为{sum}')
def step_impl(context):
    # el = context.driver.find_element_by_accessibility_id('result')
    el = context.driver.find_element_by_id('com.android.calculator2:id/display')
    actual = el.get_attribute('value')
    print(actual)
    assert actual== sum, f'result is {sum}'

steps.py文件里面定义的是一些动作,比如点击、滑动、判断等,动作都是一样的,只是操作的对象不同,我们可以通过传入参数来控制点击的按钮、滑动幅度等,这样即便与维护,又增加了代码的复用性。
5、创建demo.feature文件

Feature:求和
  Scenario: 计算器-输入数据-求和
    When 第一个值输入10
    When 点击加号
    When 第二个值输入20
    When 点击等号
    Then 断言验证结果应该为30

feature文件里面定义了一系列的操作,每一个步骤会调用steps.py里面对应的方法,实际开发中我们只要把step定义好了,后面测试用例的编写只需要新增feature文件就好了,非常的便捷。
6、运行测试

behave -D client=android feature
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

逆向三十六计

赏个馒头,吃饱了才有力气搬砖哦

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值