Python应用开发——30天学习Streamlit Python包进行APP的构建(21):APP测试

App testing

Streamlit 应用程序测试框架使开发人员能够构建和运行无头测试,直接执行应用程序代码、模拟用户输入并检查渲染输出的正确性。

所提供的 AppTest 类可模拟运行中的应用程序,并提供通过 API(而非浏览器 UI)设置、操作和检查应用程序内容的方法。它可用于编写各种场景下的应用程序自动测试。然后可以使用 pytest 等工具运行这些测试。一个典型的模式是为一个应用程序构建一套测试,以确保该应用程序在演进过程中功能的一致性,并在本地和/或 Github Actions 等 CI 环境中运行这些测试。

The AppTest class 

st.testing.v1.AppTest

一个模拟 Streamlit 应用程序,用于检查显示元素和输出的正确性。

AppTest 的实例可模拟运行中的 Streamlit 应用程序。该类提供了通过 API(而非浏览器用户界面)设置、操作和检查应用程序内容的方法。它可用于编写各种场景下的应用程序自动测试。然后可以使用 pytest 等工具运行这些测试。

AppTest 可通过三个类方法之一进行初始化:

st.testing.v1.AppTest.from_file(推荐使用)
st.testing.v1.AppTest.from_string
st.testing.v1.AppTest.from_function
初始化完成后,就可以更新会话状态和部件值,并运行脚本。与实际实时运行的 Streamlit 应用程序不同,在更改部件值后,您需要显式调用 AppTest.run()来重新运行应用程序。切换页面也需要显式调用 AppTest.run()。

AppTest 使开发人员能以熟悉的 python 测试格式在应用程序上按原样构建测试,而无需进行重大重构或抽象出与用户界面分开测试的逻辑。测试能以极低的开销快速运行。典型的模式是为应用程序构建一套测试,以确保在应用程序演进过程中保持功能一致,并在本地和/或 Github Actions 等 CI 环境中运行测试。

注意事项

AppTest 仅支持在每个实例中测试应用程序的单个页面。对于多页面应用程序,每个页面都需要单独测试。目前还没有在 AppTest 中以编程方式切换页面的方法。

Initialize a simulated app using AppTest

AppTest.from_file

创建 AppTest 实例来模拟文件中定义的应用程序页面。

此选项最适合 CI 工作流和已发布应用程序的测试。脚本本身必须是可执行的,因此必须包含所有必要的导入。

Function signature[source]

AppTest.from_file(cls, script_path, *, default_timeout=3)

Returns

(AppTest)

A simulated Streamlit app for testing. The simulated app can be executed via .run().

Parameters

script_path (str)

Path to a script file. The path should be absolute or relative to the file calling .from_file.

default_timeout (float)

Default time in seconds before a script run is timed ou

  • 8
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

此星光明

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值