软件测试之 Unittest 实现多账号切换登录及使用Page Object 设计模式对代码进行分离

这篇博客介绍了如何利用Python的Unittest进行单元测试,结合Page Object设计模式,实现对豌豆荚App的多账号登录功能的测试。通过将元素定位、通用操作和登录功能封装,提高了代码的可维护性。详细步骤包括启动信息封装、基类和公共类创建、登录操作封装以及unittest用例的组织。最终,通过unittest执行测试,记录并展示执行过程和结果。
摘要由CSDN通过智能技术生成

使用 Jmeter 实现对云服务器进行 3000+ 并发压测

对 Unittest 和 Page Object 设计模式进行简单的了解:

Unitest 是 Python 自带的一个单元测试框架,它可以用来做自动化测试框架的用例组织执行框架

  • 优点:为我们提供用例组织与执行方法、提供比较方法、提供丰富的日志和清晰的报告等

Unitest 操作的大致流程:

  1. TestCase 就是大家常说的测试用例
  2. 然后由TestLoader来加载TestCase到TestSuite(就是过个测试用例集合在一起)
  3. 最后由TextTestRunner来运行TestSuite,并把运行的结果保存到TextTestResult中
  4. 通过命令行或者 unittest.main() 来执行时,main()会调用TextTestRunner中的run()方法来执行,也可以直接通过 TextTestRunner来执行测试用例。在Runner执行时,会默认将执行的结果输出到控制台中,为了方便查看输出的结果,我们可以使用 logging 日志来对输出的结果进行管理,可以把结果直接输出到指定的文件中。

而 Page Object 是Selenium自动化测试开发实践的最佳设计模式之一,通过对界面元素的封装来减少代码的冗余,同时在后期维护中,元素的定位一旦发生变化,我们只需要调整页面元素封装的代码,这样可以提高测试用例的可维护性。

针对前面书写的关于豌豆荚的登录测试用例使用 Page Object 设计模式对书写的代码进行重构,重构的思路如下:

  1. 将一些常用的内容,(如一些取消更新、跳过元素定位等)抽离出来
  2. 将元素定位的方法和元素的属性值与业务的代码进行分离
  3. 将登录功能独立封装成一个模块
  4. 最后使用unittest来进行综合统筹

代码实现:

1、对 豌豆荚App 的启动信息进行单独的封装

xgCaps.py

from appium import webdriver
import yaml, logging, logging.config

log_file = '../log.conf'
logging.config.fileConfig(log_file)
logging = logging.getLogger()

def appium_caps():
    file = open('../appium_two/wdj_capability.yaml', 'r')
    data = yaml.load(file, Loader=yaml.FullLoader)

    xg_caps = {}
    xg_caps['platformName&#
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值