安装环境
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框架结合