TestProject Python SDK入门

article/2025/9/16 1:25:19

使用TestProject Python SDK,您可以使用TestProject平台的功能执行Selenium和Appium测试。这意味着您将受益于HTML和PDF中的自动测试报告,Selenium浏览器驱动程序的自动更新和配置,协作报告仪表板,以及更多其他功能。

 

安装TestProject Python SDK

TestProject Python SDK是100%免费和开源的,并以PyPI软件包的形式提供。您可以使用pip安装软件包:

pip install testproject-python-sdk

 

这将安装SDK及其依赖项。为了防止项目之间的版本冲突,建议使用虚拟环境来开发测试。

像所有TestProject SDK一样,Python SDK使用TestProject Agent执行测试。该代理负责浏览器驱动程序的安装和配置以及发送TestProject平台的报告。

默认情况下,SDK将通过其默认地址http://localhost:8585与代理进行通信。如果要在其他端口甚至是完全不同的计算机上运行代理,则可以通过将环境变量设置为正确的地址来配置TP_AGENT_URL正确的地址。

配置您的开发者令牌

要与代理进行通信,您需要开发者令牌。您可以通过从https://app.testproject.io/#/integrations/sdk获取令牌,并使用令牌值设置环境变量来配置SDK以使用它TP_DEV_TOKEN

创建您的第一个测试

在安装和设置SDK之后,是时候开始编写我们的第一个测试💪

from src.testproject.sdk.drivers import webdriver src.testproject.sdk.drivers import webdriver
def simple_test():def simple_test():    driver = webdriver.Chrome()= webdriver.Chrome()
    driver.get("https://example.testproject.io/web/").get("https://example.testproject.io/web/")
    driver.find_element_by_css_selector("#name").send_keys("John Smith").find_element_by_css_selector("#name").send_keys("John Smith")    driver.find_element_by_css_selector("#password").send_keys("12345").find_element_by_css_selector("#password").send_keys("12345")    driver.find_element_by_css_selector("#login").click().find_element_by_css_selector("#login").click()
    passed = driver.find_element_by_css_selector("#logout").is_displayed()= driver.find_element_by_css_selector("#logout").is_displayed()
    print("Test passed") if passed else print("Test failed")print("Test passed") if passed else print("Test failed")
    driver.quit().quit()if __name__ == "__main__":if __name__ == "__main__":    simple_test()()

 

如果您已经熟悉用Python开发基于Selenium的测试,那么这些代码应该不难理解。让我们运行它,看看会发生什么!但首先,请确保您的TestProject代理正在运行。 

运行测试

假设我们刚才看到的示例测试驻留在名为的Python模块中。由于使用使该模块可运行,因此我们只需执行以下命令即可运行此测试:web_test.pyif __name__ == “__main__”

 

python web_test.py

这将从TestProject代理请求一个Chrome驱动程序实例,运行测试并将结果报告给TestProject平台。如果您正确配置了开发人员令牌和代理地址,您将在控制台中看到以下输出,表明我们的测试已成功执行:

<...>Test passed2020-07-13 09:30:03,884 INFO Connection to Agent at http://127.0.0.1:8585 closed successfully
Process finished with exit code 0

让我们看一下生成的报告。

检查测试报告

TestProject代理将自动将您的测试结果报告发送给TestProject平台。如果您转到https://app.testproject.io/#/reports,则会看到一个名为“ 未命名项目 ”的项目

如果单击此按钮,则将看到与此项目关联的测试运行的概述。这将包含一个名为“ web_test ”的作业(该作业名称是自动从Python模块名称派生的)和一个通过的测试名为“ simple_test ”(测试名称是从测试方法名称中自动派生的):

如您所见,该测试被标记为已通过,并且浏览器驱动程序实例执行的所有单个操作都直接报告给右侧,无需额外配置!

TestProject Python SDK为您提供了多种自定义报告的选项。我们将在后续文章中详细介绍这些内容(即将发布!)。不过,值得一提的是,输入密码字段的值会自动删除,如您在报告的第5步中所见。如果需要,也可以关闭此功能。您将很快在有关报告的文章中看到。 

支持的单元测试框架

当前,TestProject Python SDK支持unittest和pytest单元测试框架。如果您已经有基于unittest 或pytest 的Selenium测试,将它们转换为TestProject驱动的测试非常容易。

让我们看一下这个基于pytest 的示例。顺便说一下,对于unittest ,该过程是完全相同的:

from selenium import webdriverfrom tests.pageobjects.web import LoginPage, ProfilePagedef test_example_using_chrome():    driver = webdriver.Chrome()    LoginPage(driver).open().login_as("John Smith", "12345")    assert ProfilePage(driver).greetings_are_displayed() is True    driver.quit()

假设您已将TestProject SDK添加为项目的依赖项,并且已按照本文前面的说明配置了代理和开发人员令牌,则只需更改此import语句即可:

from selenium import webdriverfrom src.testproject.sdk.drivers import webdriver

假设该测试是example_test名为的软件包中模块的一部分tests。如果使用以下命令运行此测试:

 

pytest tests\example_test.py

并再次转到TestProject报告页面,您将看到如下所示的报告:

SDK 分别从测试方法名称和程序包名称自动导出了测试名称(' test_example_using_chrome')和作业名称(' example_test ' )。另外,如果您使用的是pytest 或unittest ,SDK还将根据测试模块所在的软件包自动推断项目名称。如果您愿意,也可以自定义项目,作业和测试名称。您很快就会在报告文章中看到如何做到这一点。

推荐阅读

  • 使用Selenium WebDriver,Python和Chrome编写您的第一个Web测试

  • 使用Python和Chrome安装Selenium WebDriver

  • K6性能测试工具的使用入门

  • 使用Pytest创建一个Python测试自动化项目

  • Python异常处理

  • 使用Python读取,写入和解析JSON

 


http://chatgpt.dhexx.cn/article/CDEBU8xh.shtml

相关文章

cas:2699607-26-4 Propiconazole-d3 (nitrate) 活性氧

cas:2699607-26-4 Propiconazole-d3 (nitrate) 活性氧 Propiconazole-d3 (nitrate) 是 Propiconazole nitrate 的氘代物。 英文名称&#xff1a;Propiconazole-d3 (nitrate&#xff09; 分子量&#xff1a;408.25 分子式&#xff1a;C15H15D3Cl2N4O5 cas:2699607-26-4 活性…

广东生态所孙蔚旻团队EST发表利用稳定同位素示踪-宏基因组分箱联用技术揭示砷污染土壤中的厌氧砷氧化微生物及其代谢途径...

广东省生态环境技术研究所孙蔚旻团队ES&T发表&#xff1a;利用稳定同位素示踪-宏基因组分箱联用技术揭示砷污染土壤中的厌氧砷氧化微生物及其代谢途径 第一作者&#xff1a;张苗苗 通讯作者&#xff1a;孙蔚旻 通讯单位&#xff1a;广东省生态环境技术研究所 论文DOI&#…

【英语学习】【化学】几个与氮(Nitrogen)有关的化学词汇 (1)

文章目录 nitrogen&#xff1a;氮&#xff08;元素&#xff09;niter: 硝石nitric acid: 硝酸nitrate: *n.* 硝酸盐; 硝酸根potassium nitrate: 硝酸钾nitrous acid&#xff1a;亚硝酸nitrite&#xff1a;*n.* 亚硝酸盐; 亚硝酸根sodium nitrite&#xff1a;亚硝酸钠小结 nitro…

Nature综述:微生物构成的氮循环网络(必读)

文章目录 微生物构成的氮循环网络大纲摘要亮点名词解析背景和内容概述Box 1 | 氮全球生化循环圈&#xff1a;全球的氮库存、氮转化过程、氮通量图1 | 微生物转化氮化合物图2 | 催化氮循环中关键的四种反应的酶氮转化反应固氮作用氨氧化成羟胺羟胺氧化成一氧化氮和亚硝酸盐亚硝酸…

ISME:长期进化实验揭示脱硫弧菌的硝酸盐耐受机制

关注我们 一起探索微生物领域的奥妙 摘要 环境中硝酸盐的升高抑制了硫酸盐还原菌&#xff08;SRB&#xff09;中重要微生物的硫酸盐还原作用&#xff0c;在硝酸盐含量不断升高的环境中&#xff0c;一些SRB也许会通过硝酸盐呼吸在高氮环境下生存&#xff0c;但是缺少硝酸盐还原酶…

es like and or_广东生态所孙蔚旻团队ESamp;T发表利用稳定同位素示踪宏基因组分箱联用技术揭示砷污染土壤中的厌氧砷氧化微生物及其代谢途径...

广东省生态环境技术研究所孙蔚旻团队ES&T发表&#xff1a;利用稳定同位素示踪-宏基因组分箱联用技术揭示砷污染土壤中的厌氧砷氧化微生物及其代谢途径 第一作者&#xff1a;张苗苗 通讯作者&#xff1a;孙蔚旻 通讯单位&#xff1a;广东省生态环境技术研究所 论文DOI&#…

测试用例管理系统 --Nitrate

测试用例管理系统 –Nitrate 最近在网上找开源的测试用例管理系统&#xff0c;发现了Nitrate。 https://github.com/Nitrate/Nitrate搭建环境很容易&#xff0c;说一下使用的初步体验。虽然有一些小BUG&#xff0c; 而且也不支持 excel 用例的导入导出&#xff0c;只支持xml 格…

IP 数据报结构和各字段含义

IP 数据报位于 OSI 七层模型中的网络层&#xff0c;对应与 TCP/IP 四层模型中的网络层&#xff08;也称网际层&#xff09;。网络层用来处理网络上流动的数据包&#xff08;网络传输中最小的数据单元&#xff09;&#xff0c;规定了怎样的路径把数据包传输到目标计算机&#xf…

IP数据报的检验(计算机网络)

IP数据报检验 IP数据报检验的计算过程引入检验原理题目案例及分析题目要求分析 计算过程图解总结 IP数据报检验的计算过程 本篇文章只介绍IP数据报的检验过程&#xff0c;不对原理做过多讲解。内容通俗易懂&#xff0c;请放心大胆食用&#xff01; 引入 IP数据报检验只检验数据…

IP数据报首部检验和原理

首部检验和 首部检验和&#xff0c;只检验数据报的首部&#xff0c;不包括数据部分。 在发送方&#xff0c;先把IP数据报首部划分为许多16位字的序列&#xff0c;并把检验和字段置为0&#xff0c;用反码算术运算把所有16位字相加&#xff0c;将得到的和的反码写入检验和字段。…

IP数据报首部检验和的详细计算过程

目录 IP数据报检验的计算过程 引入 检验原理 题目案例及分析 题目要求 分析 计算过程图解 总结 IP数据报检验的计算过程 本篇文章只介绍IP数据报的检验过程&#xff0c;不对原理做过多讲解。内容通俗易懂&#xff0c;请放心大胆食用&#xff01; 引入 IP数据报检验只检验…

计算机网络—IP数据报格式

一个IP数据报由首部和数据两部分组成。首部的前一部分是固定长度&#xff0c;共20字节&#xff0c;是所有IP数据报必须具有的。在首部的固定部分的后面是一些可选字段&#xff0c;其长度是可变的。 IP数据报首部的固定部分中的各字段&#xff1a; &#xff08;1&#xff09;版…

IP数据报捕获及数据分析

1. JPCAP环境的安装 &#xff08;1&#xff09;下载并安装WinPcap(http://winpcap.polito.it/); &#xff08;2&#xff09;下载Jpcap最新版本&#xff1b; 链接&#xff1a;https://pan.baidu.com/s/163HOWuq4bfNHLnLhQeV3_Q 提取码&#xff1a;tzbm &#xff08;3&#xf…

网络协议格式 | 以太网帧、ARP数据报、IP数据报、UDP数据报、TCP数据报

欢迎关注博主 Mindtechnist 或加入【Linux C/C/Python社区】一起学习和分享Linux、C、C、Python、Matlab&#xff0c;机器人运动控制、多机器人协作&#xff0c;智能优化算法&#xff0c;滤波估计、多传感器信息融合&#xff0c;机器学习&#xff0c;人工智能等相关领域的知识和…

5.2.3 IP数据报(一)IP数据报的格式

5.2.3 IP数据报&#xff08;一&#xff09;IP数据报的格式 我们知道要想实现全球范围的通信除了地址要统一之外&#xff0c;数据格式也要统一&#xff0c;所以就有了IP分组&#xff0c;或者被称之为IP数据报&#xff0c;下面我们来学习IP分组的格式。如图 总体来说一个IP分组…

计算机网络学习:网络层IP数据报、ICMP协议 看一篇就够了!(含具体实验演示)

目录 一、前言 二、IP数据报 1、版本 2、首部长度 3、区分服务 4、总长度 5、标识 6、标志 7、片偏移 8、生存时间 9、协议 10、首部检验和 三、Cisco模拟器实验 四、ICMP协议 1、终点不可达 2、源点抑制 3、超时 4、参数问题 5、改变路由&#xff08;重定向…

ip数据报格式;ip数据报分片

点击打开链接 IPv4数据报格式&#xff1a; 上图表示的数据&#xff0c;最高位在左边&#xff0c;记为0位&#xff1b;最低位在右边&#xff0c;记为31位。在网络中传输数据时&#xff0c;先传输0~7位&#xff0c;其次是8~15位&#xff0c;然后传输16~23位&#xff0c;最后传输…

3.7计算机网络(IP数据报格式,IP数据报分片,IPv4)

目录 &#x1f353;IP &#x1f347;1.IP数据报格式 &#x1f351;2.IP数据报分片 &#x1f966;3.IPv4 1.分类的IP地址 2.网络地址转换NAT &#x1f9ca;个人主页&#xff1a;个人主页 &#x1f31f;系列专栏&#xff1a;计算机网络专栏 &#x1f353;IP &#x1f347;1…

IP数据报的发送和转发过程

本文主要讲述了 IP 数据报的发送和转发过程&#xff0c;参考&#xff1a;计算机网络微课堂 IP 数据报的发送和转发过程包含以下两部分&#xff1a; 主机发送 IP 数据报路由器转发 IP 数据报 说明&#xff1a;后续举例忽略了 ARP 协议获取目的主机或路由器接口的 MAC 地址的过…

IP数据报头部

1.4位版本号&#xff1a;对于ipv4&#xff0c;其值是4 2.4位头部长度&#xff1a;表示ip的头部有多少4字节。4位最大表示15&#xff0c;因此ip数据报头部最长是60字节 3.16位总长度&#xff1a;以字节为单位。最大的位2^16-1,但是由于MUT的限制&#xff0c;超过MUT的都被分片…