TestProject Python SDK入门

  

2024软件测试面试刷题,这个小程序(永久刷题),靠它快速找到工作了!(刷题APP的天花板)-CSDN博客跳槽涨薪的朋友们有福了,今天给大家推荐一个软件测试面试的刷题小程序。​编辑https://blog.csdn.net/weixin_54696666/article/details/139783730?spm=1001.2014.3001.5501icon-default.png?t=N7T8https://blog.csdn.net/weixin_54696666/article/details/139783730?spm=1001.2014.3001.5501

使用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还将根据测试模块所在的软件包自动推断项目名称。如果您愿意,也可以自定义项目,作业和测试名称。您很快就会在报告文章中看到如何做到这一点。

最后: 下方这份完整的软件测试视频教程已经整理上传完成,需要的朋友们可以自行领取【保证100%免费】

​​​软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

在这里插入图片描述

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/721185.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

达梦导入导出

针对导出数据库表结构通常有 3 种方法&#xff1a; 使用 DTS 导出 打开 DTS 迁移工具&#xff0c;选择【DM-->SQL】并链接到数据库中&#xff0c;如下图所示&#xff1a; 添加定义脚本&#xff0c;并选择【迁移范围】&#xff08;仅迁移对象定义&#xff09;&#xff0c;如…

后端开发中缓存的作用以及基于Spring框架演示实现缓存

缓存的作用及演示 现在我们使用的程序都是通过去数据库里拿数据然后展示的 长期对数据库进行数据访问 这样数据库的压力会越来越大 数据库扛不住了 创建了一个新的区域 程序访问去缓存 缓存区数据库 缓存里放数据 有效降低数据访问的压力 我们首先进行一个演示 为了演示…

MySQL事务、数据库的存储引擎

1. 事务的概念 定义&#xff1a;事务就是一组数据库操作序列&#xff08;包含一个或多个SQL操作命令&#xff09;&#xff0c;事务会把所有操作看作是一个不可分割的整体向数据库系统提交或撤销操作&#xff0c;所有操作要么都执行&#xff0c;要么都不执行。 1.1事务的 ACID …

嵌入式学习记录6.13(qt day1)

一.思维导图 二.练习&#xff08;简单模拟tim界面&#xff09; 2.1代码 mywidget.cpp #include "mywidget.h"MyWidget::MyWidget(QWidget *parent): QWidget(parent) {this->setWindowTitle("Tim");this->setWindowIcon(QIcon("C:\\Users\\zy\…

Vue61-消息订阅与发布-任意组件之间的通信

一、原理图 原生的JS不能实现订阅与发布&#xff0c;要借助第三方库&#xff1a;pubsub-js&#xff08;任何一个框架都能用&#xff01;&#xff09; 二、案例实现 school组件&#xff0c;需要数据&#xff08;订阅消息&#xff09;&#xff0c;student组件提供数据&#xff0…

现代互联网应用中的HTTPS技术

现代互联网应用中的HTTPS技术 在现代互联网应用中&#xff0c;网上诈骗、垃圾邮件和数据泄露等现象时有发生。为了保障数据安全&#xff0c;我们通常选择采用HTTPS技术。甚至在iOS开发中&#xff0c;调用接口必须是HTTPS接口。现在&#xff0c;部分浏览器也开始强制要求网站必…

这个开源软件,送给爱读书的你!!【送源码】

对于喜欢阅读的人来说&#xff0c;一定经历过从一本厚厚的修仙书籍到MP3、MP4的阅读时代&#xff0c;再到现今的手机软件。 但是现在的阅读软件经常会遇见以下问题&#xff1a;比如广告弹窗太多&#xff0c;排版乱&#xff0c;甚至很多的APP都进入会员时代&#xff0c;再加上一…

【RK3588/算能/Nvidia智能盒子】挑战「无电无网」部署AI算法,守护大亚湾荃美石化码头工地安全

“万顷碧波之上&#xff0c;一座千米钢栈桥如蛟龙出水&#xff0c;向大海蜿蜒。钢栈桥上的项目建设者正在加紧作业&#xff0c;为助推惠州大亚湾加快建设成为世界级绿色石化基地全力奋战。”这是不久前北京日报对大亚湾惠州港荃湾港区荃美石化码头工地的描述。 △ 图片来源于北…

C#——文件读取FileStream类详情

文件读取FileStream类 一个文件进行读写的时候&#xff0c;会变成一个文件流 FileStream类输入流 用于从文件进行读取文件。输出流&#xff0c;向文件写入的操作 FilleStream用于文件当中任何位置的读写 此文章借鉴与&#xff1a;C#教程&#xff08;非常详细&#xff09; Fil…

基于minhook的Windows HOOK

MinHook是一个基于微软Detours技术的可移植Hook库&#xff0c;它允许开发者在运行时更改函数定义&#xff0c;而无需修改原始函数代码。以下是关于MinHook的详细介绍&#xff1a; 基本概念 定义&#xff1a;MinHook使用内存污染和跳转技术来实现Hook&#xff0c;使得开发者能…

2024 年值得关注的 9 个最佳开源大语言模型

一、简述 开源模型在提供创新方面发挥着至关重要的作用&#xff0c;同时为开发人员、爱好者和开发人员提供了深入研究其复杂之处并对其进行微调以执行特定任务的机会。 我们将探讨一些正在开拓新市场前景并带来其独特能力和优势的顶级开源 LLM。 二、开源模型清单 1.GPT-NeoX…

【AICFD教程】汽车外气动仿真,小白学CFD的入门案例

【视频教程】 【教程】汽车外气动仿真&#xff0c;小白学CFD的入门案例 【文字教程】 1. 案例背景 1.1 学习目标 本案例针对某汽车仿真模型&#xff0c;在车速为40m/s时进行了汽车外流场的数值模拟。 本案例教程旨在演示AICFD中以下场景与功能的操作&#xff1a; a. 单域外…

【Linux Vim的保姆级教程】

&#x1f308;个人主页: 程序员不想敲代码啊 &#x1f3c6;CSDN优质创作者&#xff0c;CSDN实力新星&#xff0c;CSDN博客专家 &#x1f44d;点赞⭐评论⭐收藏 &#x1f91d;希望本文对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出指正&#xff0c;让我们共…

统计学一(术语,正态)

目录 一&#xff0c;常用术语 二&#xff0c;正态分布&#xff08;Normal Distribution&#xff09; 三&#xff0c;中心极限定理(Central Limit Theorem) 一&#xff0c;常用术语 population(族群)&#xff1a;要统计的总的 populationSize(族群数量)&#xff1a;要统计的总…

CleanMyMac X for Mac系统优化垃圾清理软件卸载 工具(小白轻松上手,简单易学)

Mac分享吧 文章目录 效果一、准备工作二、开始安装1、双击运行软件&#xff0c;将其从左侧拖入右侧文件夹中&#xff0c;等待安装完毕2、启动台显示软件图标&#xff0c;表示安装成功 三、运行测试1、打开软件&#xff0c;配置2、授权&#xff0c;允许完全磁盘访问 安装完成&a…

【Spring Cloud应用框架】

&#x1f3a5;博主&#xff1a;程序员不想YY啊 &#x1f4ab;CSDN优质创作者&#xff0c;CSDN实力新星&#xff0c;CSDN博客专家 &#x1f917;点赞&#x1f388;收藏⭐再看&#x1f4ab;养成习惯 ✨希望本文对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出…

东莞酷得:电子玩具嵌入式方案商

东莞市酷得智能科技有限公司&#xff0c;作为一家专业的玩具底层方案服务商&#xff0c;与国内外多家优秀制造企业有着深度合作&#xff0c;始终坚持以孩子为中心&#xff0c;以创新为动力&#xff0c;为孩子们打造独具特色的玩具产品。公司拥有一支专业的设计团队&#xff0c;…

南阳理工学院(期末)算法分析练习题

一、算法阅读分析题&#xff1a; 1.分析如下算法&#xff0c;回答问题&#xff08;10分&#xff09;。 该算法的作用是什么(2分)&#xff1f;分析该算法的时间复杂度(5分)?设计算法的一个输入&#xff0c;并给出对应的算法输出结果(3分) &#xff08;1&#xff09;该算法的作…

【记录46】【案例】echarts 柱状图

echarts环境4.1.0 <template><div id"threefour"></div> </template> <script> import * as echarts from "echarts" export default {name:"",components:{},data(){return {}},methods:{getdata(){var myChart…

超分辨率重建——2022冠军RLFN网络推理测试(详细图文教程)

&#x1f4aa; 专业从事且热爱图像处理&#xff0c;图像处理专栏更新如下&#x1f447;&#xff1a; &#x1f4dd;《图像去噪》 &#x1f4dd;《超分辨率重建》 &#x1f4dd;《语义分割》 &#x1f4dd;《风格迁移》 &#x1f4dd;《目标检测》 &#x1f4dd;《暗光增强》 &a…