首页 > 其他分享 >使用pytest和allure框架的登录测试类

使用pytest和allure框架的登录测试类

时间:2024-09-24 19:22:43浏览次数:10  
标签:username 登录 pytest allure login password

使用pytestallure-pytest进行登录测试是一种有效的测试方式,能够结合自动化测试框架与轻量级轻量级的灵活轻量级轻量级测试报告工具。下面我将给出一个基本的示例,展示如何为登录功能编写一个测试类,并使用pytestallure-pytest来运行和生成报告。

步骤 1: 安装必要的库

首先,确保安装了pytestallure-pytest。如果还没有安装,可以通过pip来安装:

pip install pytest allure-pytest

你还需要配置Allure以生成报告。这通常涉及下载Allure命令行工具并将其添加到你的系统路径中。可以从Allure的GitHub页面找到安装指南。

步骤 2: 编写测试代码

以下是一个简单的LoginTest类,用于测试登录功能。我们假设有一个名为app的模块,它提供了登录接口。

# test_login.py
import pytest
from app import login # 假设有一个login函数进行登录
@pytest.fixture
def user_credentials():
"""模拟的用户凭据"""
return {"username": "testuser", "password": "testpass"}
class LoginTest:
@pytest.mark.parametrize("username,password,expected", [
("testuser", "testpass", True),
("wronguser", "wrongpass", False),
("", "", False)
])
def test_login_success_and_failure(self, user_credentials, username, password, expected):
"""测试登录成功和失败的情况"""
user_credentials.update({"username": username, "password": password})
result = login(**user_credentials) # 假设login函数接受username和password作为参数
assert result == expected, f"登录测试失败,预期: {expected}, 实际: {result}"
# 使用Allure标记来增强报告
if result:
pytest.allure.dynamic.title("登录成功")
pytest.allure.dynamic.description(f"使用凭据 {username}/{password} 登录成功")
else:
pytest.allure.dynamic.title("登录失败")
pytest.allure.dynamic.description(f"使用凭据 {username}/{password} 登录失败")
pytest.allure.feature("用户认证")
pytest.allure.story("登录功能")
# 注意:实际使用中,你可能需要处理如HTTP请求等更复杂的情况,这可能需要额外的库如requests或Selenium

步骤 3: 运行测试并生成报告

  1. 运行测试:
pytest --alluredir=/path/to/allure-results

/path/to/allure-results替换为你希望存放Allure结果数据的目录。

  1. 生成报告:
allure serve /path/to/allure-results

打开浏览器并访问Allure给出的URL(通常是http://127.0.0.1:allure-results-port),你将看到生成的测试报告。

注意事项

  • 确保app.login函数按照你的需求正确实现。
  • 如果login函数依赖于HTTP请求或数据库交互,你可能需要模拟这些依赖项(例如,使用unittest.mockpytest-mock)。
  • 上述示例假设login函数返回一个布尔值来表示登录是否成功。实际情况可能更加复杂,比如返回一个用户对象或抛出异常。
  • 使用pytest.mark.parametrize装饰器来参数化测试非常有用,特别是当需要测试多种用户凭据时。

标签:username,登录,pytest,allure,login,password
From: https://blog.csdn.net/weixin_54096591/article/details/142497714

相关文章

  • PlayWright检测用户登录保存Cookie
    背景本需求以稀土掘金社区为例采用PlayWright包pipinstallplaywright思路用户打开软件,提示进入浏览器登录后进行操作将expect_response()的超时时间设置为无限毫秒expect_response()函数就是等待指定响应发生的方法通过手动抓包发现掘金社区登陆成功后响应返回接口地......
  • 【Vue】修改登录页的用户密码输入框
    一、需求场景当前输入框样式采用element-ui默认表单项样式 需要改造成UI设计的效果 二、实现方式我找了公司之前的项目,发现他们用HTML原生的input标签实现的,需要给原生标签写样式那现在的这个项目是直接用el-input做的,我觉得再用之前项目的实现方式不太理想所以看看能......
  • 55 mysql 的登录认证流程
    前言这里我们来看一下 mysql 的认证的流程 我们这里仅仅看 我们最常见的一个认证的处理流程我们经常会登录的时候 碰到各种异常信息  认证失败的大体流程大概的流程是这样 客户端和服务器建立连接之后, 服务器向客户端发送 salt然后 客户端根据salt 将客户端传入的密......
  • Vitepress 文档加微信网页授权登录功能
    目录前言​准备事项​实现步骤​1.建Vitepress文档项目​2.公众号配置网页授权域名​3.授权服务端开发​4.开发Vitepress登录组件​功能预览​前言​一般情况下使用Vitepress 写在线文档是用不上登录功能。如果想要实现权限控制、付费阅读等功能,不加个登录......
  • VsCode使用git上传代码登录问题
    问题场景我在VsCode上传代码到gitee的时候遇到上传不了的问题,起初我在添加远程仓库链接的时候使用的是ssh链接来上传自己的代码,然而始终上传不了,在上传的时候VsCode一直提醒我是否继续连接,我感觉可能使用ssh链接是连接不上了。然后我去百度了一下,有人说要用http的链接,我就将远......
  • WGCAT 工单系统 如何在登录页面添加验证码
    WGCAT工单管理系统,支持设置登录输入验证码,只需要修改下配置文件就可以了打开配置文件config/application.yml,设置如下配置项#登录页面是否需要显示验证码,yes显示,no不显示vercodeCheck:yes然后重启下程序就好啦......
  • ubuntu 解决scp ssh登录WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!
     使用SSH登录某台机器,有时因为server端的一些变动,会出现以下信息:@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@IT IS POSSIBLE THAT SOMEO......
  • JavaWeb -Servlet对表单数据的处理 例:登录系统
    一、创建html文件并添加框架内容<tr></tr>是表格标签<td></td>是单元格标签1.添加用户名和密码<inputtype="text"name="username">文本格式(text),函数名是username。<inputtype="password"name="password">密码格式(password),函数名......
  • 第三方系统和金蝶不做单点登录只做用户名密码验证
    项目背景:第三方系统要使用金蝶云星空系统的用户名和密码,但是不做金蝶系统的单点登录,只做金蝶系统的用户名密码校验前提条件:此帖子涉及到的方法需要部署在金蝶内网,并且能登陆金蝶系统后台数据库的前提条件下1、金蝶内网环境下做个自定义接口程序2、接口引用Kingdee.BOS.dll3、C......
  • 【PAM】Linux登录认证限制
    PAM(PluggableAuthenticationModules,可插拔认证模块)是一种灵活的认证框架,用于在Linux和其他类Unix系统上管理用户的身份验证。PAM允许系统管理员通过配置不同的认证模块来定制应用程序和服务的认证方式,而不需要修改这些应用程序的源代码。0、PAM介绍PAM的核心概念......