当前位置: 首页 > news >正文

Python自动化测试实战:深度解析Scripts脚本层结构!

很多刚刚尝试自动化测试小伙伴的朋友们,对于我们的自动化「懒人代码」的只会使用,但不了解其运行原理。不用担心,今天我们对于Scripts脚本里边中的类和函数进行详细的讲解(以登录购物商城为例)

虽然是代码讲解,但非常简单的噢~


简介

这是我们的代码项目目录(想必小伙伴们已经非常的熟悉了)
image-20250928上午111057964

完整的商场登录Scripts代码:

from tools.get_driver import GetDriver
from tools.read_json import read_json
from page.shopping.login import PageLogin
from tools.get_log import GetLoglog = GetLog.get_logger()
import allure@allure.feature("登录方法类")
class TestLogin:# 初始化log.info("初始化")def setup_class(self):# 初始化json数据self.data_json = read_json("login.json")# 初始化driverself.driver = GetDriver().get_driver(self.data_json[0])# 结束log.info("结束")def teardown_class(self):self.driver.quit()# 调用page层的综合调用方法log.info("调用page层的综合调用方法")@allure.title("登录方法")def test_login(self):PageLogin(self.driver).page_login(self.data_json[1], self.data_json[2])# 避免因为错误导致脚本异常中断try:# 判断是否登录成功log.info("断言成功")assert PageLogin(self.driver).page_get_word() == self.data_json[3]# 未成功,抛出异常except Exception as e:log.info("断言失败")print("错误信息为:", e)raiseif __name__ == '__main__':TestLogin().test_login()

1、class TestLogin:

脚本中首先会看到一个类 class TestLogin

类(Class),在Python中的作用是可以将几个函数整合起来,作为一个大的方法去调用

在我们的自动化测试代码中,使用类将我们的 数据+浏览器初始化,关闭浏览器,以及调用测试脚本整合起来,方便运行;这样写还可以使我们代码的方便阅读与维护

新手小伙伴请注意:在Python3中,类加()和不 ()是等价的;也就是说class TestLogin:class TestLogin():都可以

# 登录商城类
class TestLogin:

2、def setup_class(self):

pytest中定义的setup_class()函数与Python中的init()初始化函数类似,在整个测试类运行之前执行一次(不关心一个类里面有多少个测试用例),一般用来进行初始化浏览器和测试数据的操作

setup_class()初始化函数属于类级别初始化操作,翻译成人话来说:setup_class()只针对于Class类的开始和结束,而不针对Class类中的函数

# 登录商城类
class TestLogin:# 初始化函数
def setup_class(self):# 初始化json数据self.data_json = read_json("login.json")# 初始化driverself.driver = GetDriver().get_driver(self.data_json[0])

3、def teardown_class(self):

既然在pytest中有setup_class()初始化函数,那么就会有对应的关闭操作:teardown_class()函数。teardown_class函数在整个测试类运行之后执行一次(不关心一个类里面有多少个测试用例),一般用来进行关闭浏览器的操作

teardown_class()函数也是属于类级别的函数

# 登录商城类
class TestLogin:# 关闭操作
def teardown_class(self):# 关闭浏览器self.driver.quit()

4、def test_login(self)

这是我们调用测试脚本的函数。我们在使用setup_class()函数完成初始化浏览器和测试数据后,紧接着就是要调用Page层编写的测试用例

在脚本运行完成之后,需要加入assert()进行断言操作,以判断我们的脚本运行是否达到预期。比如我们的登录商城是以Hi,欢迎来到lilishop的欢迎语来断言脚本登录成功

try...except...是Python中的异常处理函数,为了避免因为断言异常,而导致我们的整个测试脚本运行失败

# 登录商城类
class TestLogin:# 调用Page层测试方法
def test_login(self):PageLogin(self.driver).page_login(self.data_json[1], self.data_json[2])# 避免因为错误导致脚本异常中断try:# 判断是否登录成功assert PageLogin(self.driver).page_get_word() == self.data_json[3]# 未成功,抛出异常except Exception as e:print("错误信息为:", e)raise

5、if __name__ == '__main__'

作为脚本启动器,主要作用是将if __name__ == '__main__'下的脚本直接执行。

当然它还有另外一个作用是被调用到其他的Python脚本中时if __name__ == '__main__'下的脚本不执行,这个并不是我们在这里使用它的主要目的


虽然Scripts层脚本里的类和函数不少,但都是很基础的初始化、调用等,看起来是不是比较简单的呢?如果还有关于自动化测试的问题可以在下面留言或私信小编噢~

描述
http://www.dtcms.com/a/462286.html

相关文章:

  • 天津住房和城乡建设建造师网站与市场营销有关的网站
  • 系统移植篇之uboot-2:编译微观实验
  • 第一章 网络基础
  • 建筑网站起名东道设计公司logo
  • LC175 组合两个表
  • 个人怎么注册网站网站301跳转
  • MongoDB 集合更新后通过 Socket.IO 自动推送数据到前端 (FastAPI 实现)
  • 东胜网站建设医疗网站前置审批查询
  • windows如何设置mongodb的副本集
  • 物流网站有哪些网站被做301跳转了怎么办
  • shell脚本命令删除Zookeeper提供者服务中的指定IP节点
  • 六安网站制作公司价格龙口网络
  • Node.js使用Express框架解决中文乱码问题
  • 设计模式--桥接模式:解耦抽象与实现的灵活设计
  • 做竞价的网站怎么做网站数据库备份
  • 基于FireBeetle 2 ESP32-C5的智能植物光照系统——物联网农业实践
  • 天津住房与城乡建设厅网站首页包头学做网站
  • 【Frida Android】基础篇1:基础环境配置
  • YOLOv11安卓目标检测App完整开发指南
  • 鸿蒙NEXT实战:使用公共事件实现跨进程通信
  • npm升级提示error engine not compatible with your version of node/npm: npm@11.6.2
  • 我的网站为什么打不开怎么回事啊携程做旅游的网站
  • 网站推广的表现方式网站开发需要用到哪些设备
  • 缓存大杀器-redis
  • 网站建设管理方案网站开发与app开发的区别
  • 装修公司网站制作大数据营销成功案例
  • 【STM32】I2C通信—硬件外设
  • 脚手架学习
  • 做网站好还是做淘宝好现在手机网站用什么做的
  • 建设行业网站平台的瓶颈网站网页