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('退出登录失败')
相关推荐
hbugs0016 小时前
BPF 表达式检查器:一款免费开源的 Wireshark 捕获过滤器语法检查与可视化构建工具
网络·测试工具·开源·eve-ng·bpf
测试秃头怪18 小时前
如何评估自动化测试脚本的编写时间和维护工作量?
自动化测试·软件测试·python·功能测试·测试工具·职场和发展·测试用例
程序员杰哥1 天前
接口测试知识总结
自动化测试·软件测试·python·测试工具·职场和发展·测试用例·接口测试
尼古拉斯·纯情暖男·天真·阿玮1 天前
正交表的概念与生成
测试工具
城中南小1 天前
人机Agent团队协同:从Managed Agents原理到Multica实践
selenium·测试工具
测试老哥2 天前
Pytest自动化测试详解
自动化测试·软件测试·python·测试工具·测试用例·pytest·接口测试
Luminbox紫创测控2 天前
大面积太阳模拟器设计原理与高均匀度辐照实现方法
人工智能·测试工具·安全性测试·测试标准
m0_752035632 天前
postman重新安装后历史接口数据不见了
测试工具·postman
程序员小远2 天前
性能测试之性能调优
自动化测试·软件测试·python·测试工具·职场和发展·测试用例·性能测试
xy34533 天前
Wireshark捕获过滤器——语法元素详解
网络·测试工具·渗透测试·wireshark