selenium+pytest 自动化测试实战项目(登录升级版)

介绍
复制代码
###### 测试的系统:
复制代码
###### 技术:selenium,pytest
复制代码
###### 测试的功能:登录,退出登录。
测试用例
用例编号 主模块 子模块 前置条件 测试步骤 预期结果 实际结果
Login_01 登录 登录 已注册 1.输入正确的用户名,不输入密码。2.点击登录 登录不成功,有相关的提示 登录不成功,提示:请输入密码
Login_02 登录 登录 已注册 1.不输入用户名,输入正确的密码。2.点击登录 登录不成功,有相关的提示 登录不成功,提示:请输入用户名
Login_03 登录 登录 已注册 1.输入正确的用户名,输入错误的密码。2.点击登录 登录不成功,有相关的提示 登录不成功,提示:登录失败 : 用户名或者密码错误
Login_04 登录 登录 已注册 1.输入错误的用户名,输入正确的密码。2.点击登录 登录不成功,有相关的提示 登录不成功,提示:登录失败 : 用户名或者密码错误
Login_05 登录 登录 已注册 1.输入错误的用户名和错误的密码。2.点击登录 登录不成功,有相关的提示 登录不成功,提示:登录失败 : 用户名或者密码错误
Login_06 登录 登录 已注册 1.输入正确的用户名和正确的密码。2.点击登录 登录成功 登录成功
LogOut_07 退出登录 退出登录 已登录 1.点击退出登录按钮 退出登录成功 退出登录成功
自动化测试程序
python 复制代码
#configuration.py
from selenium import webdriver

url = 'http://127.0.0.1/mgr/sign.html'
chrome = webdriver.Chrome()
python 复制代码
#LoginSuccessfully.py
"""
@author:zulnger(丽格)
"""
from selenium import webdriver
from time import sleep
import pytest
from configuration import driver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.common.exceptions import NoAlertPresentException

def Login(Uname,pw):
    # 打开系统
    driver.chrome.get('http://127.0.0.1/mgr/sign.html')
    sleep(3)

    # Login_01
    # 定位元素
    userName = driver.chrome.find_element(By.ID, 'username')
    userName.clear()
    userName.send_keys(f'{Uname}')
    sleep(2)

    password = driver.chrome.find_element(By.ID, 'password')
    password.clear()
    password.send_keys(f'{pw}')
    sleep(2)

    #点击登录
    submit = driver.chrome.find_element(By.XPATH,"//div[@class='col-xs-12']/button")
    submit.click()
    sleep(3)
python 复制代码
#test_login.py
"""
@author:zulnger(丽格)
"""
from selenium import webdriver
from time import sleep
import pytest
from configuration import driver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from Login.LoginSuccessfully import *

class Test_Login:
    def test_Login_01(self):
        #Login_0
        log = Login('byhy','')

        # Confirm 弹窗
        try:
            Confirm = driver.chrome.switch_to.alert
            print("登录失败!!!")
            text = Confirm.text
            print('登录失败提示语  ------>  ', text)
            Confirm.accept()
            sleep(3)

        except NoAlertPresentException:
            print("登录成功~")
            print("当前没有 alert,跳过处理")


        assert text == '请输入密码'

    def test_Login_02(self):
        log = Login('','byhy')

        # Confirm 弹窗
        try:
            Confirm = driver.chrome.switch_to.alert
            print("登录失败!!!")
            text = Confirm.text
            print('登录失败提示语  ------>  ', text)
            Confirm.accept()
            sleep(3)

        except NoAlertPresentException:
            print("登录成功~")
            print("当前没有 alert,跳过处理")

        assert  text == '请输入用户名'

    def test_Login_03(self):
        log = Login('byhy', '8888888')

        # Confirm 弹窗
        try:
            Confirm = driver.chrome.switch_to.alert
            text = Confirm.text
            print('登录失败提示语  ------>  ', text)
            Confirm.accept()
            sleep(3)

        except NoAlertPresentException:
            print("登录成功~")
            print("当前没有 alert,跳过处理")

        assert text == '登录失败 : 用户名或者密码错误'

    def test_Login_04(self):
        log = Login('byh', '88888888')

        # Confirm 弹窗
        try:
            Confirm = driver.chrome.switch_to.alert
            text = Confirm.text
            print('登录失败提示语  ------>  ', text)
            Confirm.accept()
            sleep(3)

        except NoAlertPresentException:
            print("登录成功~")
            print("当前没有 alert,跳过处理")

        assert text == '登录失败 : 用户名或者密码错误'

    def test_Login_05(self):
        log = Login('by', '99999999')

        # Confirm 弹窗
        try:
            Confirm = driver.chrome.switch_to.alert
            text = Confirm.text
            print('登录失败提示语  ------>  ', text)
            Confirm.accept()
            sleep(3)

        except NoAlertPresentException:
            print("登录成功~")
            print("当前没有 alert,跳过处理")

        assert text == '登录失败 : 用户名或者密码错误'

    def test_Login_06(self):
        log = Login('byhy','88888888')
        sleep(2)

        logo_text = driver.chrome.find_element(By.CSS_SELECTOR,".main-header .logo-lg").text
        assert logo_text == '白月黑羽SMS'
python 复制代码
#test_loout.py
from time import sleep
import pytest
from configuration import driver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from Login.LoginSuccessfully import *
from selenium.common.exceptions import TimeoutException

def test_logout():
    Login('byhy','88888888')

    try:
        # 例:退出按钮、用户昵称、头像......
        userAvatarElement = driver.chrome.find_element(By.XPATH, '//div[@class="navbar-custom-menu"]/ul/li[2]/a')
        userAvatarElement.click()
        sleep(2)

        logOutElement = driver.chrome.find_element(By.XPATH, '//div[@class="pull-right"]/a')
        logOutElement.click()
        sleep(2)

        print('退出登录成功!!!!!')



    except TimeoutException:
        print('退出登录失败')
相关推荐
IT小白杨6 小时前
工程视角下的浏览器环境API:资源模型、权限审计与MCP实践
大数据·经验分享·selenium·chrome devtools·安全架构·指纹浏览器
随风而飘1866 小时前
KEITHLEY吉时利 2400 数字源表
人工智能·功能测试·科技·测试工具
程序员三藏11 小时前
自动化测试用例编写详解
自动化测试·软件测试·python·功能测试·测试工具·职场和发展·测试用例
测试老哥14 小时前
Pytest自动化测试框架tep环境变量、fixtures、用例三者之间的关系
自动化测试·软件测试·python·测试工具·测试用例·pytest·职场发展
小小测试开发15 小时前
Agent 安全测试:pytest 原生红队框架 RAMPART 实战解析
人工智能·pytest
IT小白杨15 小时前
当MCP遇上指纹浏览器:AI自然语言驱动隔离环境的实践思路
人工智能·经验分享·selenium·安全·业界资讯·指纹浏览器
qq_5137280416 小时前
Selenium 显式等待
selenium·测试工具
St_rive18 小时前
selenium cookie的处理
数据库·selenium·测试工具
随风而飘18618 小时前
安立(Anritsu)MT8820C无线综合测试仪(手机综测仪)
网络·功能测试·测试工具·5g·智能手机