#正常场景#前置#1、用户余额够用 :充值一个亿。#2、查看有多少余额,然后不够200块,我就去充值。如果有就不充值了。#不走web页面,走接口来实现。#有可投资的标#步骤# 首页-直接选第一个标;#标页面 - 获取用户可用余额# 标页面-输入金额,进行投资。投资金额:200# 点击投资成功弹出框中的 查看并激活按钮#验证# 个人页面:获取用户可用余额#比对:投资金额 = 投资前的余额 - 投资后的余额# 投资记录???# 利息是多少?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 loggingclass TestInvest: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
.mark.invest.mark.usefixtures("login_web")class TestInvest:
@pytest.mark.invest标记这是一个投资相关的测试类。@pytest.mark.usefixtures("login_web")使用login_webfixture,确保每个测试方法执行前都会先登录。
3. 正常场景测试方法 test_invest_success
def 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))
- 步骤解析:
- 从首页进入第一个标的投资页面。
- 获取投资前的用户余额。
- 输入投资金额(
ID.invest_money)并提交。 - 点击弹窗中的“查看并激活”按钮,跳转到用户页面。
- 获取投资后的用户余额。
- 断言验证投资金额是否正确扣除。
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
- 步骤解析:
- 从首页进入第一个标的投资页面。
- 获取投资前的用户余额。
- 输入非100整数倍的投资金额(
ID.no100_data["money"])。 - 获取错误提示信息。
- 刷新页面,确保投资未成功。
- 获取投资后的用户余额。
- 断言验证错误提示是否正确,且用户余额未变化。
5. 代码特点
- 页面对象模式(PO):将页面操作封装在
PageObjects中,提高代码复用性。 - 数据驱动:测试数据存储在
invest_data模块中,便于维护。 - 日志记录:使用
logging记录测试步骤,便于调试。 - 异常场景覆盖:测试了非100整数倍的投资金额,验证系统的错误处理。
6. 待改进点
- 未完成的测试方法:
test_invest_fail_no10方法未实现。 - 更多异常场景:如余额不足、标的可投金额不足等。
- 投资记录验证:注释中提到需要验证投资记录,但代码中未实现。
- 利息计算验证:注释中提到需要验证利息,但代码中未实现。

