SeleniumBase 利用数据驱动 方式运行-使用笔记(五)

自动化福音(爬虫、办公、测试等) SeleniumBase 使用笔记(五)

SeleniumBase 利用数据驱动 方式运行

有同学问我,如何对 SeleniumBase 使用数据驱动 见评论区,于是有了这个文章。

目录

  1. SeleniumBase继承方式
  2. SeleniumBase夹具方式

继承方式

这种方式的使用,前提是你的代码使用的继承BaseCase类的方式编写的,此时需要用parameterized.expand来装饰,而不能用pytest.mark.parametrize,具体如下:

#!/usr/bin/env python3
# -*- coding: UTF-8 -*-
"""
@ File        : test.py
@ Author      : yqbao
@ Version     : V1.0.0
@ Description : 数据驱动
"""
from parameterized import parameterized
from seleniumbase import BaseCase

BaseCase.main(__name__, __file__)


class TestParameterized(BaseCase):
    @parameterized.expand(
        [
            ['standard_user', 'secret_sauce'],
            ['locked_out_user', 'secret_sauce']
        ]
    )
    # 按照顺序解析到对应的参数中
    def test_parameterized_login(self, username, password): 
        self.open("https://www.saucedemo.com")
        self.type("#user-name", username)
        self.type("#password", password)
        self.click('input[type="submit"]')

夹具方式

这种方式的使用,可以兼容pytest.mark.parametrize装饰方法,因为SeleniumBase夹具的使用方式有两种,所以这里也就有两种驱动方式,具体如下:

#!/usr/bin/env python3
# -*- coding: UTF-8 -*-
"""
@ File        : test.py
@ Author      : yqbao
@ Version     : V1.0.0
@ Description : 数据驱动
"""
import pytest


# 没有类时,直接使用
@pytest.mark.parametrize('username,password', [
    ('standard_user', 'secret_sauce'),
    ('locked_out_user', 'secret_sauce')
])
def test_sb_fixture_with_no_class(sb, username, password):
    sb.open("https://www.saucedemo.com")
    sb.type("#user-name", username)
    sb.type("#password", password)
    sb.click('input[type="submit"]')


# 有类时,应用于类中
class TestSBFixtureParameterized:
    @pytest.mark.parametrize('username,password', [
        ('standard_user', 'secret_sauce'),
        ('locked_out_user', 'secret_sauce')
    ])
    def test_sb_fixture_parameterized_login(self, sb, username, password):
        sb.open("https://www.saucedemo.com")
        sb.type("#user-name", username)
        sb.type("#password", password)
        sb.click('input[type="submit"]')

GitHub SeleniumBase
本文章的原文地址
GitHub主页

posted @ 2024-09-05 10:44  星尘的博客  阅读(38)  评论(0编辑  收藏  举报