gbase 8a gcdw web端 角色创建自动化用例样例 python+selenium

在 GBase 8a GCDW 应用中,角色创建是一个至关重要的功能,它关乎用户权限的管理和安全性。通过 Selenium WebDriver,我们可以模拟用户在网页上的操作,从而实现角色创建功能的自动化测试。

使用的技术栈

Python:作为自动化脚本的编写语言,它简洁优雅,适合快速开发。
Selenium:一个强大的自动化测试框架,用于执行浏览器操作。

自动化测试用例步骤

打开浏览器并访问角色创建页面:
使用 Selenium 打开浏览器并导航到角色创建的 URL。

输入角色名称和描述:
模拟用户在输入框中输入角色名称及角色描述。

选择权限:
如果角色创建涉及权限选择,自动勾选所需的权限选项。

提交角色创建表单:
点击提交按钮,提交表单。

验证角色是否创建成功:
检查页面上是否显示成功创建的消息,或在角色列表中确认新角色的存在。

以下是一个简单的 Python + Selenium 自动化用例示例:
# -*- coding: utf-8 -*-

from time import sleep
import config
import pytest
from selenium.webdriver.common.by import By
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

from toolbox.sql_client import conn_sql
def start():
    """
    用例执行前需要做的处理
    """
    db = conn_sql()
    cur = db.cursor()
    try:
        sql1 = "show roles"
        cur.execute(sql1)
        results = cur.fetchall()
        sql2 = "DROP ROLE zztest"
        for result in results:
            if 'zztest' in result:
                cur.execute(sql2)
        db.commit()
    except Exception as e:
        print(e)
        db.rollback()
    cur.close()
    db.close()
    print("setup方法")


def end():
    """
    用例执行后需要做的处理
    """
    db = conn_sql()
    cursor = db.cursor()
    sql1 = "DROP ROLE 'zztest'"
    try:
        cursor.execute(sql1)
        db.commit()
    except Exception as e:
        print(e)
        db.rollback()
    cursor.close()
    db.close()
    print("teardown方法")


@pytest.mark.mark_01
@pytest.mark.skipif(condition=config.is_run("test_01_roles_create_success"), reason='用例下线')
def test_01_roles_create_success():
    # 调用通用模块登陆方法
    driver = config.DRIVER

    # 进入账户-角色模块
    WebDriverWait(driver, 30).until(EC.element_to_be_clickable((By.LINK_TEXT, "Account"))).click()
    sleep(1)
    driver.find_element(By.XPATH, "//li/span[contains(text(),'Roles')]").click()
    sleep(1)

    # 新建角色,填写信息后点击完成
    driver.find_element(By.XPATH, "//button/span[contains(text(),'Create')]").click()
    driver.find_element(By.XPATH, "//div[@aria-label='Create Role']//form/div[1]//input").send_keys('zztest')
    driver.find_element(By.XPATH, "//div[@aria-label='Create Role']//form/div[2]//input").click()
    sleep(1)
    driver.find_element(By.XPATH, "//li/span[contains(text(),'accountadmin')]").click()
    driver.find_element(By.XPATH, "//div[@aria-label='Create Role']//form/div[3]//input").send_keys('zztest')
    driver.find_element(By.XPATH, "//div[@aria-label='Create Role']//span[contains(text(),'Finish')]").click()
    WebDriverWait(driver, 30).until(EC.element_to_be_clickable((By.XPATH, "//button/span[contains(text(),'Create')]")))

    # 等待后台缓一会
    sleep(3)

    # 调用通用模块调用数据库连接
    db = conn_sql()

    # 创建游标
    cur = db.cursor()
    count = 0

    # 尝试数据库语句
    try:
        sql = 'show roles'
        cur.execute(sql)
        db.commit()
        results = cur.fetchall()
        print(results)
        for result in results:
            if 'zztest' in result:
                count += 1

    # 抛出异常
    except Exception as e:
        print(e)
        db.rollback()

    # 关闭游标和数据库
    cur.close()
    db.close()

    # 断言
    assert count == 1, "角色创建失败"
    print("角色创建成功")
    sleep(1)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值