hyrobot和RF(robotframework)的使用

本文介绍了自动化测试的实现细节,包括测试用例命名规范、步骤定义、公共代码封装、测试初始化与清除、测试选择执行及标签应用。通过示例展示了如何组织测试用例和执行流程,以及如何通过标签进行关键测试用例的筛选。
摘要由CSDN通过智能技术生成

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()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值