首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >Scripts脚本竟如此简单?新手必看

Scripts脚本竟如此简单?新手必看

作者头像
大飞记Python
发布2026-04-14 20:27:28
发布2026-04-14 20:27:28
310
举报

很多刚刚尝试自动化测试小伙伴的朋友们,对于我们的「懒人代码」的层级不太清楚。不用担心,我来给大家一一介绍~

简介

这是我们的代码项目目录(想必小伙伴们已经非常的熟悉了),今天对于Scripts脚本里边中的类和函数进行详细的讲解(以登录购物商城为例)

image-20250928上午111057964
image-20250928上午111057964

image-20250928上午111057964

完整的商场登录Scripts代码

代码语言:javascript
复制
from tools.get_driver import GetDriver
from tools.read_json import read_json
from page.shopping.login import PageLogin
from tools.get_log import GetLog

log = GetLog.get_logger()
import allure

@allure.feature("登录方法类")
class TestLogin:
    # 初始化
    log.info("初始化")

    def setup_class(self):
        # 初始化json数据
        self.data_json = read_json("login.json")
        # 初始化driver
        self.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)
            raise


if __name__ == '__main__':
    TestLogin().test_login()
1、class TestLogin:

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

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

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

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

代码语言:javascript
复制
# 登录商城类
class TestLogin:
2、def setup_class(self):

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

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

代码语言:javascript
复制
# 登录商城类
class TestLogin:
  
# 初始化函数
def setup_class(self):
    # 初始化json数据
    self.data_json = read_json("login.json")
    # 初始化driver
    self.driver = GetDriver().get_driver(self.data_json[0])
3、def teardown_class(self):

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

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

代码语言:javascript
复制
# 登录商城类
class TestLogin:
    
# 关闭操作
def teardown_class(self):
    # 关闭浏览器
    self.driver.quit()
4、def test_login(self)

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

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

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

代码语言:javascript
复制
# 登录商城类
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层脚本里的类和函数不少,但都是很基础的初始化、调用等,看起来是不是比较简单的呢?如果还有关于自动化测试的问题可以在下面留言或私信小编噢~

如果觉得有帮助,不要吝啬你的点赞分享噢~

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2025-10-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 大飞记Python 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 简介
  • 完整的商场登录Scripts代码
    • 1、class TestLogin:
    • 2、def setup_class(self):
    • 3、def teardown_class(self):
    • 4、def test_login(self)
    • 5、if __name__ == '__main__'
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档