1.类名字随便取:
真正的测试用例名字和文本此时用力一致,用name表示
eg:
class Test_01:
#测试用例的名字
name = "管理员首页_001"
2.测试用例以class类开头,.测试用例的步骤以teststeps开头:
STEP(1,"这是第一步登陆")表示这是步骤几,加描述
检查点:CHECK_POINT("登录页面?",denglu),描述加条件
def teststeps(self):
driver = webdriver.Chrome()
STEP(1,"这是第一步登陆")
INFO("这是第一步")
driver.get("http://127.0.0.1:8047/mgr/sign.html")
STEP(2, "查找是否在登陆界面")
denglu = driver.find_element(By.XPATH, "/html/body/div[1]/div[2]/p")
# denglu = driver.find_element_by_xpath("//*[@text='输入用户名、密码登录']")
print(denglu)
CHECK_POINT("登录页面?",denglu)
time.sleep(2)
3.公共代码的提取和封装:
下一个方法想要调用,必须有前面的返回值,不然传不进去!!!!
return driver
def open_browser():
print("打开浏览器")
driver = webdriver.Chrome()
driver.implicitly_wait(5)
return driver
__init__文件:
from lib.login import open_browser from lib.login import login2 #或者from lib.login import *
import time
from selenium import webdriver
from selenium.webdriver.common.by import By
def open_browser():
print("打开浏览器")
driver = webdriver.Chrome()
driver.implicitly_wait(5)
return driver
def login2(driver):
driver.get("http://127.0.0.1:8047/mgr/sign.html")
denglu = driver.find_element(By.XPATH, "/html/body/div[1]/div[2]/p")
# denglu = driver.find_element_by_xpath("//*[@text='输入用户名、密码登录']")
print(denglu)
time.sleep(2)
测试用例的简化:
from lib import *
from hyrobot.common import *
class Test_01:
#测试用例的名字
name = "管理员首页_001"
#测试用例的步骤
def teststeps(self):
STEP(1,"这是第一步打开浏览器")
INFO("这是第一步")
driver=open_browser()
login2(driver)
class Test_02:
# 测试用例的名字
name = "管理员首页_002"
def teststeps(self):
driver=open_browser()
login2(driver)
4.初始化清除:初始化清除是自动化测试中很重要的东西
hyrobot里
setup和teardown
下面这样就只会打开一个浏览器: suite_setup()和suite_teatdown()
class Test_01:
#测试用例的名字
name = "管理员首页_001"
def suite_setup(self):
driver=open_browser()
login2(driver)
def suite_teardown(self):
driver = get_global_webdriver()
driver.quit()
目录的初始化和清除:可以移动到上层文件夹
hyrobot里
__st__
将下面的代码移动到__st__中:
def suite_setup(self):
driver=open_browser()
login2(driver)
def suite_teardown(self):
driver = get_global_webdriver()
driver.quit()
5.hyrobot里执行测试用例:可以挑选用例执行,也可以加标签
run --test testA
run --test testB
./run --test 测试百度
或者放到文件里执行多个
--test testA
--test testB
....
run+A+参数文件名,注意文件路径
run -A args
run --test test*
run --test *test
或者run --test " xxxxx "
文件名就是测试套件:
run --suite 管理员操作.py
执行所有套件
run --suite *.py
6.hyrobot里面打标签
1,标签放在测试用例之前,注意标签的作用域,ye可以放在套件文件__st__中
force_tags = ['打开', '冒烟']
#测试用例的步骤
def teststeps(self):
单个测试用例标签的使用:
class Test_01: #测试用例的名字 name = "管理员首页_001" tags=['打开', '冒烟']
7.通过标签执行测试用例
run --include 打开
run --include 冒烟
无空格,执行既有也有 打开and冒烟的用例
run --include 打开and冒烟*
执行有打开或者冒烟标签的用例
run --include 打开 冒烟
不包含:
run --exclude 打开
8.关键测试用例:
run --critical first*打开
非关键run --noncritical 打开
9.run -L debug
配置debug信息:
完整代码:
管理员操作.py
import time
from hyrobot.common import STEP, INFO
from lib import *
from hyrobot import *
def suite_setup():
open_chrome()
def suite_teardown():
driver=get_chromedriver()
driver.quit()
class c1:
name="测试百度"
tags=["bobo","可乐"]
def teststeps(self):
STEP(1,"打开浏览器打开百度")
INFO("正在打开")
driver=get_chromedriver()
time.sleep(1)
open_baidu(driver)
time.sleep(2)
INFO("已经打开百度")
class c2:
name = "测试白夜黑羽"
def teststeps(self):
STEP(2, "打开白夜黑羽")
INFO("正在打开白夜黑羽")
driver=get_chromedriver()
open_baiyeheiyu(driver)
INFO("已经打开百度白夜黑羽")
webui公共代码:common-----------------webui.py
from selenium import webdriver
from cfg import yamlurlconfig
from hyrobot.common import GSTORE
def open_chrome():
driver = webdriver.Chrome()
GSTORE["get_chromedriver"] = driver
return driver
def get_chromedriver():
return GSTORE["get_chromedriver"]
def open_baidu(driver):
driver.get(f"{yamlurlconfig['url']['baidu']}")
def open_baiyeheiyu(driver):
driver.get(f"{yamlurlconfig['url']['baiyeheiyu']}")
文件夹用例的初始化清除:__st__
import time
from lib.webui import *
from hyrobot import *
from hyrobot.common import STEP
#文件夹用例的初始化清除
def suite_setup():
driver = open_chrome()
driver.implicitly_wait(2)
def siite_teardown():
close_chrome()