大数跨境
0
0

简易web页面ui自动化架构学习(7)-TestCases-test_invest.py

简易web页面ui自动化架构学习(7)-TestCases-test_invest.py 橙子好甜
2025-06-21
2
导读:简易web页面ui自动化架构学习,了解TestCases模块,先要了解pytest模块的功能与应用=
了解TestCases模块,先要了解pytest模块的功能与应用。
test_invest.py
#正常场景#前置#1、用户余额够用 :充值一个亿。#2、查看有多少余额,然后不够200块,我就去充值。如果有就不充值了。#不走web页面,走接口来实现。#有可投资的标
#步骤# 首页-直接选第一个标;#标页面 - 获取用户可用余额# 标页面-输入金额,进行投资。投资金额:200# 点击投资成功弹出框中的   查看并激活按钮
#验证# 个人页面:获取用户可用余额#比对:投资金额  = 投资前的余额 - 投资后的余额# 投资记录???# 利息是多少?import syssys.path.append('..')
from TestDatas import invest_data as ID
from PageObjects.index_page import IndexPagefrom PageObjects.bid_page import BidPagefrom PageObjects.user_page import UserPageimport pytestfrom Common import loggerimport logging
@pytest.mark.invest@pytest.mark.usefixtures("login_web")class TestInvest:
    @pytest.mark.smoke    def test_invest_success(self,login_web):        logging.info("*********投资用例:正常场景-投资成功*********")        # 首页 - 选一个标来投资 - 直接选第一个标 - --- / 随机选一个        IndexPage(login_web).click_first_investButton()        # 标页面 - 获取投资前的个人余额        bid_page = BidPage(login_web)        userMoney_beforeInvest = bid_page.get_user_leftMoney()        # 标页面 - 输入投资金额 ,点击投标按钮        bid_page.invest(ID.invest_money)        # 标页面 - 投资成功弹出框 ,点击查看并激活按钮        bid_page.click_activeButton_from_investSuccess_popup()        # #验证        # 个人页面 - 获取用户当前余额        userMoney_afterInvest = UserPage(login_web).get_user_leftMoney()        # 1、余额:投资前获取一下,投资后再获取一下。求差值,如果等于投资金额,那正确。        assert ID.invest_money == int(float(userMoney_beforeInvest) - float(userMoney_afterInvest))        # PS:自动化测试独立帐号。        # 2、个人页面 - 投资记录获取。
    def test_invest_failed_by_No100(self, login_web):        logging.info("*********投资用例:异常场景:投资金额为非100的整数倍*********")        # 首页 - 选一个标来投资 - 直接选第一个标 - --- / 随机选一个        IndexPage(login_web).click_first_investButton()        # 标页面 - 获取投资前的个人余额        bid_page = BidPage(login_web)        userMoney_beforeInvest = bid_page.get_user_leftMoney()        # 标页面 - 输入投资金额 ,点击投标按钮        bid_page.invest(ID.no100_data["money"])        # 获取提示信息        errorMsg = bid_page.get_errorMsg_from_popup()        # 刷新        login_web.refresh()        # 获取用户余额        userMoney_afterInvest = bid_page.get_user_leftMoney()        # 断言        assert errorMsg == ID.no100_data["check"]        assert userMoney_afterInvest == userMoney_beforeInvest    #    # def test_invest_fail_no10(self):    #     pass
#异常场景  - 用户余额不够 - 手功用例#异常场景  - 投资》标的可投余额 - 手功用例

用于测试投资功能的正常和异常场景。以下是对代码的解析:

1. 导入模块和测试数据

import syssys.path.append('..')
from TestDatas import invest_data as IDfrom PageObjects.index_page import IndexPagefrom PageObjects.bid_page import BidPagefrom PageObjects.user_page import UserPageimport pytestfrom Common import loggerimport logging
  • sys.path.append('..') 将上级目录添加到 Python 路径,以便导入模块。
  • 导入测试数据 invest_data 作为 ID
  • 导入页面对象类:IndexPage(首页)、BidPage(标的页面)、UserPage(用户页面)。
  • 导入 pytest 测试框架和日志模块。

2. 测试类 TestInvest

@pytest.mark.invest@pytest.mark.usefixtures("login_web")class TestInvest:
  • @pytest.mark.invest 标记这是一个投资相关的测试类。
  • @pytest.mark.usefixtures("login_web") 使用 login_web fixture,确保每个测试方法执行前都会先登录。

3. 正常场景测试方法 test_invest_success

@pytest.mark.smokedef test_invest_success(self, login_web):    logging.info("*********投资用例:正常场景-投资成功*********")    # 1. 首页点击第一个标的投资按钮    IndexPage(login_web).click_first_investButton()    # 2. 获取投资前的用户余额    bid_page = BidPage(login_web)    userMoney_beforeInvest = bid_page.get_user_leftMoney()    # 3. 输入投资金额并点击投标按钮    bid_page.invest(ID.invest_money)    # 4. 点击投资成功弹窗中的“查看并激活”按钮    bid_page.click_activeButton_from_investSuccess_popup()    # 5. 获取投资后的用户余额    userMoney_afterInvest = UserPage(login_web).get_user_leftMoney()    # 6. 断言:投资金额 = 投资前余额 - 投资后余额    assert ID.invest_money == int(float(userMoney_beforeInvest) - float(userMoney_afterInvest))
  • 步骤解析:
    1. 从首页进入第一个标的投资页面。
    2. 获取投资前的用户余额。
    3. 输入投资金额(ID.invest_money)并提交。
    4. 点击弹窗中的“查看并激活”按钮,跳转到用户页面。
    5. 获取投资后的用户余额。
    6. 断言验证投资金额是否正确扣除。

4. 异常场景测试方法 test_invest_failed_by_No100

def test_invest_failed_by_No100(self, login_web):    logging.info("*********投资用例:异常场景:投资金额为非100的整数倍*********")    # 1. 首页点击第一个标的投资按钮    IndexPage(login_web).click_first_investButton()    # 2. 获取投资前的用户余额    bid_page = BidPage(login_web)    userMoney_beforeInvest = bid_page.get_user_leftMoney()    # 3. 输入非100整数倍的投资金额    bid_page.invest(ID.no100_data["money"])    # 4. 获取错误提示信息    errorMsg = bid_page.get_errorMsg_from_popup()    # 5. 刷新页面    login_web.refresh()    # 6. 获取投资后的用户余额    userMoney_afterInvest = bid_page.get_user_leftMoney()    # 7. 断言:错误提示符合预期,且余额未变化    assert errorMsg == ID.no100_data["check"]    assert userMoney_afterInvest == userMoney_beforeInvest
  • 步骤解析:
    1. 从首页进入第一个标的投资页面。
    2. 获取投资前的用户余额。
    3. 输入非100整数倍的投资金额(ID.no100_data["money"])。
    4. 获取错误提示信息。
    5. 刷新页面,确保投资未成功。
    6. 获取投资后的用户余额。
    7. 断言验证错误提示是否正确,且用户余额未变化。

5. 代码特点

  • 页面对象模式(PO):将页面操作封装在 PageObjects 中,提高代码复用性。
  • 数据驱动:测试数据存储在 invest_data 模块中,便于维护。
  • 日志记录:使用 logging 记录测试步骤,便于调试。
  • 异常场景覆盖:测试了非100整数倍的投资金额,验证系统的错误处理。

6. 待改进点

  1. 未完成的测试方法test_invest_fail_no10 方法未实现。
  2. 更多异常场景:如余额不足、标的可投金额不足等。
  3. 投资记录验证:注释中提到需要验证投资记录,但代码中未实现。
  4. 利息计算验证:注释中提到需要验证利息,但代码中未实现。

【声明】内容源于网络
0
0
橙子好甜
人生苦短,我用python --it测试狗
内容 30
粉丝 0
橙子好甜 人生苦短,我用python --it测试狗
总阅读20
粉丝0
内容30