当前位置: 首页 > 知识库问答 >
问题:

在behave中进行“用户更改密码”验收测试

农存
2023-03-14

我在使用behave(python)自动化验收测试时,遇到了编写更改密码场景的测试的问题。

这是我在test_change_password.py中的步骤

from behave import *
from features.steps.common_steps import fill_in_email, fill_in_password, show_main_page, register_user, logout
from features.steps.constants import *
import time

CHANGE_PASSWORD_USER_EMAIL = 'change_password@gmail.com'

use_step_matcher("re")


def login(context, password):
    context.browser.visit("/login")
    context.browser.is_element_present_by_css("//input")
    fill_in_email(context, 'test@gmail.com')
    fill_in_password(context, password)
    context.browser.find_by_xpath("//button").first.click()

def change_password_fields_and_logout(context):
    old_pass_field = context.browser.find_by_xpath('//form/div[%s]/input' % OLD_PASS_INDEX)
    old_pass_field.fill(NEW_PASSWORD)
    new_pass_field = context.browser.find_by_xpath('//form/div[%s]/input' % NEW_PASS_INDEX)
    new_pass_field.fill(OLD_PASSWORD)
    confirm_new_pass_field = context.browser.find_by_xpath('//form/div[%s]/input' % CONFIRM_NEW_PASS_INDEX)
    confirm_new_pass_field.fill(OLD_PASSWORD)
    context.browser.find_by_xpath('//button[text()="Submit"]').first.click()
    logout(context)


@given("change password user login")
def step_impl(context):
    context.browser.visit('/login')
    context.browser.is_element_present_by_css('//h1')
    fill_in_email(context, CHANGE_PASSWORD_USER_EMAIL)
    fill_in_password(context, NEW_PASSWORD)
    context.browser.find_by_xpath("//button[@type='submit']").first.click()
    if not context.browser.is_element_present_by_text('first name last name'):
        NEW_PASSWORD, OLD_PASSWORD = OLD_PASSWORD, NEW_PASSWORD
        fill_in_password(context, NEW_PASSWORD)


@when("user changed his password")
def step_impl(context):
    context.browser.is_element_present_by_text('first name last name')
    context.browser.find_by_text("first name last name").first.click()
    context.browser.is_element_present_by_text('Change password')
    context.browser.find_by_xpath('//a[text()="Change password"]').first.click()
    change_password_fields_and_logout(context)


@then("user login with new password")
def step_impl(context):
    login(context, NEW_PASSWORD)

共有1个答案

夏意蕴
2023-03-14
  1. 连接到数据库并在设置方法中插入新用户。
  2. 在步骤1中测试更改添加用户的密码。
  3. 在测试清理中从数据库中删除用户。您可以使用环境控件进行设置和清理,也可以为此编写自己的步骤。
 类似资料:
  • 本文向大家介绍更改Mysql root用户密码,包括了更改Mysql root用户密码的使用技巧和注意事项,需要的朋友参考一下 新下载了mysql,口令为空,如何修改root口令: 首先登陆mysql 注意需要 flush privileges; 更改Mysql root用户口令的内容小编就给大家介绍到这里,希望对大家有所帮助!

  • 问题内容: 我正在使用JNDI更改LDAP用户的密码。在大多数情况下(当用户密码未过期时),此代码可以正常工作: 但是,当密码过期的用户尝试更改它时,我的应用程序将抛出: 所以我的问题是:是否可以更改LDAP过期密码?如果可能,请告诉如何。 感谢您的帮助! 问题答案: 通过在Ad中创建超级用户可以解决此问题,该用户有权更改每个AD密码。当AD用户密码到期时,超级用户将更改其密码。

  • 我正在尝试使用命令行更新数据库用户的密码,但它对我不起作用。这是我正在使用的代码: 有人能告诉我这个代码有什么问题吗?

  • -----------编辑代码到当前状态------------------------- 在这整个过程中,对于如何获取/设置用户密码并为安全目的对密码进行散列,有什么建议吗?对于电子邮件,我想我可以强制它使用HTTPS,这就足够了,但是我希望保护到传递new_password的服务器的连接。

  • 如何更改PostgreSQL用户的密码?

  • 如何更改PostgreSQL用户的密码?