Gauge使用体验

安装环境

brew install gauge
gauge install python
#VScode安装Gauge插件

新建项目

命令新建

mkdir gauge-demo
gauge init python

VSCode新建

Command+Shift+P

运行例子

Web demo

# Getting Started with Gauge

## start demo

* Open browser go to "https://www.baidu.com"

* Search for "Software testing"

* Click the search button
import os
import time
from getgauge.python import before_scenario, after_scenario, step
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from uuid import uuid1
from getgauge.python import custom_screenshot_writer

@before_scenario
def before_scenario():
    global driver
    driver = webdriver.Chrome()
    time.sleep(3)
    driver.maximize_window()

@after_scenario
def after_scenario():
    driver.close()

@step("Open browser go to <url>")
def go_to_gauge_homepage_at(url):
    driver.get(url)

@step("Search for <query>")
def go_to_get_started_page(query):
    search_box = driver.find_element(By.ID, "kw")
    search_box.send_keys(query)

@step("Click the search button")
def click_search_button():
    search_box = driver.find_element(By.ID, "su")
    search_box.click()

@custom_screenshot_writer
def take_screenshot():
    image = driver.get_screenshot_as_png()
    file_name = os.path.join(
        os.getenv("gauge_screenshots_dir"), "screenshot-{0}.png".format(uuid1().int))
    file = open(file_name, "wb")
    file.write(image)
    return os.path.basename(file_name)

测试报告

App demo

# top100网站回归测试

## tiktok网站回归测试
* 当用户在首页搜索框输入"tiktok.com"
* 那么用户应该看到悬浮按钮亮起
* 当用户在当前页面点击悬浮下载按钮
* 那么用户应该看到下载进度页
* 当用户在下载进度页点击关闭按钮
* 而且用户点击底部工具栏主页按钮
* 那么用户应该看到主页

## xvidoes网站回归测试
* 当用户在首页搜索框输入"xvideos.com"
* 而且用户在当前页面点击坐标("0.5","0.35")
* 那么用户应该看到悬浮按钮亮起
* 当用户在当前页面点击悬浮下载按钮
* 那么用户用户应该看到下载列表
* 当用户在下载列表点击Download按钮
* 那么用户应该看到下载进度页
* 当用户在下载进度页点击关闭按钮
* 而且用户点击底部工具栏主页按钮
* 那么用户应该看到主页
import os
from time import sleep
from getgauge.python import before_spec, after_spec, step
import uiautomator2 as u2
from uuid import uuid1
from getgauge.python import custom_screenshot_writer

@before_spec
def before_feauture():
    global driver
    driver = u2.connect()
    driver.app_start("free.video.downloader.converter.music")
    driver.implicitly_wait(10)
    sleep(5)
    driver.watcher.when(
        '//*[@resource-id="free.video.downloader.converter.music:id/close_dialog_view"]').click()
    driver.watcher.start()

@after_spec
def after_feature():
    sleep(5)
    driver.watcher.stop()
    driver.app_stop("free.video.downloader.converter.music")

@step("当用户在首页搜索框输入<word>")
def step_impl(word):
    driver(resourceId="free.video.downloader.converter.music:id/tvSearch").click()
    driver.send_keys(word, clear=True)
    driver.press('enter')
    sleep(10)

@step("那么用户应该看到悬浮按钮亮起")
def step_impl():
    driver(resourceId="free.video.downloader.converter.music:id/completeLoadView").exists()

@step("当用户在当前页面点击悬浮下载按钮")
def step_impl():
    driver(resourceId="free.video.downloader.converter.music:id/completeLoadView").click()
    sleep(3)

@step("那么用户应该看到下载进度页")
def step_impl():
    driver(resourceId="free.video.downloader.converter.music:id/tvTitle").exists()

@step("当用户在下载进度页点击关闭按钮")
def step_impl():
    driver(resourceId="free.video.downloader.converter.music:id/ivClose").click()

@step("而且用户点击底部工具栏主页按钮")
def step_impl():
    driver(resourceId="free.video.downloader.converter.music:id/ivGoHome").click()

@step("那么用户应该看到主页")
def step_impl():
    driver(resourceId="free.video.downloader.converter.music:id/tvGuide").exists()

@step("而且用户在当前页面点击坐标(<x>,<y>)")
def step_impl(x, y):
    driver.click(float(x), float(y))
    sleep(5)

@step("那么用户用户应该看到下载列表")
def step_impl():
    driver(resourceId="free.video.downloader.converter.music:id/downloadView").exists()

@step("当用户在下载列表点击Download按钮")
def step_impl():
    driver(resourceId="free.video.downloader.converter.music:id/downloadView").click()
    sleep(3)

@custom_screenshot_writer
def take_screenshot():
    file_name = os.path.join(
        os.getenv("gauge_screenshots_dir"), "screenshot-{0}.png".format(uuid1().int))
    image = driver.screenshot(file_name)
    return os.path.basename(image)

同理,gauge也可以和Appium/AirTest框架结合

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值