如何使用Python开发Qt应用的自动化测试

2023-12-16

2024软件测试面试刷题,这个小程序(永久刷题),靠它快速找到工作了!(刷题APP的天花板)-CSDN博客 文章浏览阅读1.3k次,点赞60次,收藏8次。你知不知道有这么一个软件测试面试的刷题小程序。里面包含了面试常问的软件测试基础题,web自动化测试、app自动化测试、接口测试、性能测试、自动化测试、安全测试及一些常问到的人力资源题目。最主要的是他还收集了像阿里、华为这样的大厂面试真题,还有互动交流板块…… https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5501 随着软件开发领域持续进步,Qt桌面应用的测试方法也在逐渐演变。传统上,Qt应用的测试主要依赖于测试工程师手工执行用例,这种方法虽然在某些方面有效,但对于大型应用而言,手工测试的耗时过长,且在可靠性和覆盖率方面往往难以满足高标准的需求。尤其是在当前持续集成/交付/部署(CI/CD)概念日益普及的背景下,自动化测试成为提高效率、确保软件质量的关键手段。

Python在自动化测试中的优势

在这种背景下,使用Python编写测试用例有显著的优势。Python以其简洁的语法、强大的功能和丰富的生态系统,在自动化测试领域中占据了重要地位。Python不仅易于学习和使用,还拥有广泛的库和框架,这些都使得编写、执行和维护自动化测试变得更加高效和灵活。此外,Python的跨平台特性也使其成为构建自动化测试脚本的理想选择。

在这篇文章中,我们将探索如何利用CukeTest的Python功能来开发和实现Qt应用的自动化测试。从测试用例的设计到脚本的录制、整合,再到最终的测试执行和报告生成,我们将详细介绍每一步骤,帮助你有效地实施Qt应用的自动化测试。

下方的动图展示了自动化测试项目的实际运行效果。

图片

运行项目

设计测试用例

在开发Qt应用的自动化测试前,合理的测试用例设计是关键。我们以CukeTest自带的样例应用 standardDialogs 为例,设计了一个简单而具有代表性的功能场景:操作文本对话框。这个测试案例旨在验证用户交互的基本流程和应用的响应能力。包括以下步骤:

  1. 打开文本对话框 :验证对话框能否正常打开。

  2. 修改文本框内容 :模拟用户输入,检查应用对用户操作的响应。

  3. 检查修改生效 :确认应用界面正确显示修改后的文本。

接下来,我们将介绍如何在CukeTest中实现这些操作的自动化测试。

创建项目

首先,我们需要创建一个新的CukeTest项目。打开CukeTest,选择“新建项目”,并填写项目名称。这里,我们将项目命名为 QtAutoTest 。另外,还需要设置脚本语言和项目模板,这里我们选择Python作为脚本语言,项目模板选择Pytest。

图片

创建项目

录制Qt应用操作

一旦项目创建完成,下一步是创建自动化测试脚本。在CukeTest中,这可以通过“录制”功能来完成。

开始录制

  1. 设置录制参数 :在CukeTest的主界面中,打开录制设置。选择录制模式为 Qt 。然后,填写应用程序路径。例如,对于样例应用 _standardDialogs_,其默认路径为 C:\Program Files\LeanPro\CukeTest\bin\standarddialogs.exe 。其余设置可以保持默认。

  2. 启动录制 :准备就绪后,点击 开始录制 按钮。CukeTest将自动启动指定的Qt应用程序。这时,所有的用户操作,包括点击、输入等,都会被CukeTest记录下来。

    图片

  3. 执行测试操作 :接下来,根据之前设计的测试用例执行以下操作:

    • 点击应用中的 QInputDialog::getText() 按钮,以打开文本对话框。

    • 在文本框中输入“Hello World”,然后点击“OK”。

添加检查点

在自动化测试中,检查点(Checkpoint)是验证应用状态是否符合预期的关键部分。在CukeTest中,您可以在录制过程中快捷添加检查点。具体操作步骤如下:

  1. 快速打开检查点对话框 :在录制时,通过按住Alt键并右击目标控件,您可以快速打开检查点对话框。这个功能让你能够在进行操作的同时,即时地添加验证步骤,提高测试脚本的编写效率。

  2. 添加属性检查点 :对于本测试用例,我们将添加一个属性检查点来验证 QInputDialog::getText() 按钮旁的Label控件中的文本。在“属性检查点”列表中,选择“text”属性(其值应为“Hello World”),这就是我们要验证的目标属性。

  3. 确认和插入检查点脚本 :选择需要验证的属性后,点击 确认 按钮。相应的检查点脚本就会被插入到我们的录制脚本中。

如果需要添加 图像检查点 ,只需切换到图像检查点标签页,并勾选需要检查的图片。这种检查点用于验证应用界面上特定图像的出现,非常适合那些以视觉元素为核心的测试场景。

图片

检查点对话框

完成录制

当我们完成所有预定的操作步骤后,关闭目标应用程序,并在CukeTest的工具栏中点击 停止 按钮。这样我们的自动化测试脚本就算录制完成了。

可以看到CukeTest已经自动生成了相应的测试脚本。这大大减轻了测试脚本编写的负担,特别是对于那些不熟悉编程的测试人员来说,自动生成的脚本无疑是一个巨大的便利。

下面是CukeTest生成的Python脚本示例:

import os
from leanproAuto import RunSettings, QtAuto

def recording():

    RunSettings.set({"slowMo": 1000, "reportSteps": True})

    modelQt = QtAuto.loadModel(os.path.dirname(os.path.realpath(__file__)) + "/recording.tmodel")

    
    #启动Qt应用文件"standarddialogs"
    QtAuto.launchQtProcessAsync("C:\\Program Files\\LeanPro\\CukeTest\\bin\\standarddialogs.exe")
    
    #等待Qt应用"standarddialogs"
    modelQt.getApplication("standarddialogs").exists(10)
    
    #点击 "QInputDialog::getText()"
    modelQt.getButton("QInputDialog::getText()").click()
    
    #设置控件值为"Hello World"
    modelQt.getEdit("QLineEdit").set("Hello World")
    
    #点击 "OK"
    modelQt.getButton("OK").click()
    
    #检查属性
    modelQt.getLabel("Hello_World").checkProperty("text", "Hello World")
    
    #close Window "Standard_Dialogs"
    modelQt.getWindow("Standard_Dialogs").close()
    
    #关闭Qt应用"standarddialogs"
    modelQt.getApplication("standarddialogs").quit()


if __name__ == "__main__":
    recording()

验证脚本

有了录制的脚本,下一步就是验证这些脚本的准确性和有效性。

  • 执行脚本 :点击 运行脚本 按钮,CukeTest会开始执行测试脚本。你可以观察到脚本是如何一步一步模拟之前的操作。

  • 观察操作回放 :在回放过程中,CukeTest会准确地模拟我们之前的所有操作,确保测试用例中的每一个功能都得到了验证。

  • 调整操作速度 :你可能注意到,脚本执行的速度并不是非常快。这是因为CukeTest在录制时默认启用了“慢动作”模式。在生成的脚本中, slowMo 选项被设置为1000,意味着操作间隔被延长至1秒。为了加快测试速度,你可以将 slowMo 的值调整为0,这样自动化测试就可以以最快的速度运行。

图片

回放脚本

整合自动化测试用例与代码

在自动化测试中,录制生成的操作脚本往往只构成了整个测试流程的一部分。为了在更广泛的测试项目中应用这些脚本,我们需要对它们进行整合和优化。CukeTest提供了对pytest及pytest-bdd框架的支持,使得这一过程更加顺畅。以下是以pytest框架为例,展示如何将录制的脚本整合成一个完整的自动化测试项目。

1. 创建应用模型

录制生成的代码通常需要依赖于录制时使用的模型文件。因此,在将录制生成的脚本整合进自动化测试项目时,管理和优化这些模型文件是必不可少的。

  • 创建新模型文件 :为了适应本次测试的特定需求,我们可以创建一个新的模型文件。可以简单地使用录制时生成的模型,将其重命名为 model1.tmodel ,用于本次测试。

  • 整合到已有模型 :如果项目中已经存在模型文件,您可以打开这个已有模型文件和新录制的模型文件。然后,通过将新录制的模型的根节点拖拽到已有的模型树中,实现模型的复制。接下来,右击复制生成的节点,选择“合并到兄弟节点”,完成模型的合并。这样,就可以在已有模型中使用新录制时操作到的控件对象。

此外,您也可以在录制的时候选择“录制到已有模型”,这会直接将新的控件对象保存到现有模型中,进一步简化整合过程。

图片

模型文件

2. 配置测试环境

接下来,创建conftest.py文件。在Pytest中,这个文件扮演着配置角色,它可以用来定义全局的fixture,以及一些自定义的设置和插件。在做界面自动化测试时,我们通常将被测应用的启动和关闭,以及测试环境的初始化放在这里。

在这个项目中, conftest.py 文件的内容如下:

from leanproAuto import QtAuto, Util
import pytest

# 定义被测应用的路径
app_path = "C:\\Program Files\\LeanPro\\CukeTest\\bin\\standarddialogs.exe"
# 加载模型文件
modelQt = QtAuto.loadModel("./model1.tmodel")
# 初始化一个空的上下文字典
context = {}

# 在所有测试之前运行的操作
def pytest_sessionstart(session):
    # 启动Qt应用进程,并保存进程ID
    context["pid"] = QtAuto.launchQtProcessAsync(app_path)
    # 等待Qt应用"standarddialogs"出现,设置超时为10秒
    modelQt.getApplication("standarddialogs").exists(10)

# 在所有测试之后运行的操作
def pytest_sessionfinish(session):
    # 结束之前启动的进程
    Util.stopProcess(context["pid"])

这段代码主要完成以下几个任务:

  • 应用路径 :定义了被测试Qt应用的路径。

  • 模型加载 :加载了之前提到的模型文件,这对于界面自动化测试非常重要。

  • 测试会话开始和结束 :定义了在所有测试开始之前和结束之后执行的操作。这包括启动和关闭被测应用,确保测试环境的正确初始化和清理。

通过以上配置,我们的测试环境将为执行自动化测试脚本做好充分准备。

3. 编写用例代码

在自动化测试项目中,编写和组织测试用例代码是实现测试自动化的核心步骤。接下来,我们将介绍如何将CukeTest中录制的脚本代码转换为符合Pytest格式的测试用例代码。这个过程主要涉及将录制的步骤整理和粘贴到Pytest的测试文件中,并确保遵循Pytest的命名和结构规范。

  • 测试文件命名 :首先,确保你的测试文件名以“test_”为前缀,这是Pytest识别测试文件的标准命名规则。例如,可以命名为 test_functionality.py

  • 创建测试类和方法 :在项目模板中,通常会有一个 test_class.py 文件,你可以直接在这个文件中添加你的测试用例。测试方法也需要遵循Pytest的命名规范,即以 test_ 为前缀。

  • 粘贴录制步骤 :将CukeTest中录制的脚本步骤粘贴到对应的测试方法中。如果录制的操作很长,建议根据测试步骤将脚本分解,以保持代码的可读性和维护性。

下面是修改后的 test_class.py 文件:

import os
from leanproAuto import RunSettings, QtAuto

# 设置运行参数,包括慢动作和步骤报告
RunSettings.set({"slowMo": 1000, "reportSteps": True})
# 加载模型文件
modelQt = QtAuto.loadModel("./model1.tmodel")


def test_input_text():
    # 点击 "QInputDialog::getText()"
    modelQt.getButton("QInputDialog::getText()").click()

    # 设置控件值为"Hello World"
    modelQt.getEdit("QLineEdit").set("Hello World")

    # 点击 "OK"
    modelQt.getButton("OK").click()

    # 检查属性
    modelQt.getLabel("Hello_World").checkProperty("text", "Hello World")
    

通过这样的方式,我们可以将CukeTest录制的脚本无缝转换为Pytest的测试用例,并在Pytest环境下执行自动化测试。

运行项目并查看测试报告

在CukeTest中,你可以通过点击项目界面上的 运行项目 按钮来执行测试用例。这个过程会自动运行所有按Pytest规范编写的测试脚本。

图片

运行项目

执行完成后,CukeTest会生成一个详细的测试报告。这份报告会包括测试摘要、详细的测试结果等信息。测试报告会展示每个测试用例的执行状态,例如“通过”或“失败”,并提供足够的信息来帮助你理解测试结果。

通过修改脚本,你还可以在测试报告中插入自定义的截图,以提供更多的上下文信息和视觉证据,增强报告的信息丰富度。

图片

测试报告

总结

在本文中,我们介绍了如何使用CukeTest配合Python开发Qt应用的自动化测试。CukeTest不仅提供了一套强大的工具来录制和回放Qt应用的操作,还支持通过Python脚本来增强和定制测试流程,从而提高测试的灵活性和有效性。

行为驱动开发(BDD)支持

值得一提的是,CukeTest不限于支持传统的自动化测试脚本,还内置了对Python中诸如pytest-bdd这样的BDD框架的支持。这种方法使得测试用例的编写更接近于自然语言,极大地提高了测试用例的可读性和可维护性,使非技术人员也能轻松理解。

第三方编辑器支持

此外,CukeTest的自动化测试项目也支持在第三方编辑器中开发,例如Visual Studio Code(VSCode)。这意味着你可以在熟悉的开发环境中编写和管理测试脚本,利用这些编辑器强大的功能来提高开发效率。

跨平台支持

CukeTest还提供了对Linux环境的支持,使得跨平台的Python录制和开发Qt自动化测试成为现实。无论是在Windows还是Linux环境下,CukeTest都能提供一致的用户体验和强大的功能,从而确保测试过程的无缝对接。

结语

通过本文的介绍,我们展示了一种高效且可靠的方法来实现Qt应用的自动化测试。自动化测试不仅能有效减轻测试工程师的工作负担,还能显著提高整个软件开发流程的效率和质量保证,是现代软件开发不可或缺的重要组成部分。

行动吧,在路上总比一直观望的要好,未来的你肯定会感谢现在拼搏的自己!如果想学习提升找不到资料,没人答疑解惑时, 请及时加入群: 786229024 ,里面有各种测试开发资料和技术可以一起交流哦。

最后: 下方这份完整的软件测试视频教程已经整理上传完成,需要的朋友们可以自行领取 【保证100%免费】 在这里插入图片描述
软件测试面试文档
我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。 在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用Python开发Qt应用的自动化测试 的相关文章

  • 如何在刻度标签和轴之间添加空间

    我已成功增加刻度标签的字体 但现在它们距离轴太近了 我想在刻度标签和轴之间添加一点呼吸空间 如果您不想全局更改间距 通过编辑 rcParams 并且想要更简洁的方法 请尝试以下操作 ax tick params axis both whic
  • 更改自动插入 tkinter 小部件的文本颜色

    我有一个文本框小部件 其中插入了三条消息 一条是开始消息 一条是结束消息 一条是在 单位 被摧毁时发出警报的消息 我希望开始和结束消息是黑色的 但被毁坏的消息 参见我在代码中评论的位置 插入小部件时颜色为红色 我不太确定如何去做这件事 我看
  • 打破嵌套循环[重复]

    这个问题在这里已经有答案了 有没有比抛出异常更简单的方法来打破嵌套循环 在Perl https en wikipedia org wiki Perl 您可以为每个循环指定标签 并且至少继续一个外循环 for x in range 10 fo
  • 安装后 Anaconda 提示损坏

    我刚刚安装张量流GPU创建单独的后环境按照以下指示here https github com antoniosehk keras tensorflow windows installation 但是 安装后当我关闭提示窗口并打开新航站楼弹出
  • 如何使用装饰器禁用某些功能的中间件?

    我想模仿的行为csrf exempt see here https docs djangoproject com en 1 11 ref csrf django views decorators csrf csrf exempt and h
  • IRichBolt 在storm-1.0.0 和 pyleus-0.3.0 上运行拓扑时出错

    我正在运行风暴拓扑 pyleus verbose local xyz topology jar using storm 1 0 0 pyleus 0 3 0 centos 6 6并得到错误 线程 main java lang NoClass
  • Python:字符串不会转换为浮点数[重复]

    这个问题在这里已经有答案了 我几个小时前写了这个程序 while True print What would you like me to double line raw input gt if line done break else f
  • Pandas Dataframe 中 bool 值的条件前向填充

    问题 如何转发 fill boolTruepandas 数据框中的值 如果是当天的第一个条目 True 到一天结束时 请参阅以下示例和所需的输出 Data import pandas as pd import numpy as np df
  • ExpectedFailure 被计为错误而不是通过

    我在用着expectedFailure因为有一个我想记录的错误 我现在无法修复 但想将来再回来解决 我的理解expectedFailure是它会将测试计为通过 但在摘要中表示预期失败的数量为 x 类似于它如何处理跳过的 tets 但是 当我
  • Python 3 中“map”类型的对象没有 len()

    我在使用 Python 3 时遇到问题 我得到了 Python 2 7 代码 目前我正在尝试更新它 我收到错误 类型错误 map 类型的对象没有 len 在这部分 str len seed candidates 在我像这样初始化它之前 se
  • Nuitka 未使用 nuitka --recurse-all hello.py [错误] 编译 exe

    我正在尝试通过 nuitka 创建一个简单的 exe 这样我就可以在我的笔记本电脑上运行它 而无需安装 Python 我在 Windows 10 上并使用 Anaconda Python 3 我输入 nuitka recurse all h
  • 如何将 PIL 图像转换为 NumPy 数组?

    如何转换 PILImage来回转换为 NumPy 数组 这样我就可以比 PIL 进行更快的像素级转换PixelAccess允许 我可以通过以下方式将其转换为 NumPy 数组 pic Image open foo jpg pix numpy
  • 在Python中重置生成器对象

    我有一个由多个yield 返回的生成器对象 准备调用该生成器是相当耗时的操作 这就是为什么我想多次重复使用生成器 y FunctionWithYield for x in y print x here must be something t
  • 设置 torch.gather(...) 调用的结果

    我有一个形状为 n x m 的 2D pytorch 张量 我想使用索引列表来索引第二个维度 可以使用 torch gather 完成 然后然后还设置新值到索引的结果 Example data torch tensor 0 1 2 3 4
  • 用于运行可执行文件的python多线程进程

    我正在尝试将一个在 Windows 上运行可执行文件并管理文本输出文件的 python 脚本升级到使用多线程进程的版本 以便我可以利用多个核心 我有四个独立版本的可执行文件 每个线程都知道要访问它们 这部分工作正常 我遇到问题的地方是当它们
  • 对输入求 Keras 模型的导数返回全零

    所以我有一个 Keras 模型 我想将模型的梯度应用于其输入 这就是我所做的 import tensorflow as tf from keras models import Sequential from keras layers imp
  • Spark.read 在 Databricks 中给出 KrbException

    我正在尝试从 databricks 笔记本连接到 SQL 数据库 以下是我的代码 jdbcDF spark read format com microsoft sqlserver jdbc spark option url jdbc sql
  • Python - 字典和列表相交

    给定以下数据结构 找出这两种数据结构共有的交集键的最有效方法是什么 dict1 2A 3A 4B list1 2A 4B Expected output 2A 4B 如果这也能产生更快的输出 我可以将列表 不是 dict1 组织到任何其他数
  • Python:元类属性有时会覆盖类属性?

    下面代码的结果让我感到困惑 class MyClass type property def a self return 1 class MyObject object metaclass MyClass a 2 print MyObject
  • PyAudio ErrNo 输入溢出 -9981

    我遇到了与用户相同的错误 Python 使用 Pyaudio 以 16000Hz 录制音频时出错 https stackoverflow com questions 12994981 python error audio recording

随机推荐

  • 新奥集团2024届秋招/校招内推信息/内推码

    公司名称 新奥集团 内推码 EVVPTH 内推来源 内推鸭小程序 2000 企业内推人发布内推码 官方招聘网站 https enn zhiye com campus jobs
  • vdsvd.dll文件缺少导致程序无法运行问题

    其实很多用户玩单机游戏或者安装软件的时候就出现过这种问题 如果是新手第一时间会认为是软件或游戏出错了 其实并不是这样 其主要原因就是你电脑系统的该dll文件丢失了或没有安装一些系统软件平台所需要的动态链接库 这时你可以下载这个vdsvd d
  • 鹏芯微2024届秋招/校招内推信息/内推码

    公司名称 鹏芯微 内推码 ISVM18 内推来源 内推鸭小程序 2000 企业内推人发布内推码 官方招聘网站 https career pxwsemi com
  • usbui.dll文件丢失导致程序无法运行问题

    其实很多用户玩单机游戏或者安装软件的时候就出现过这种问题 如果是新手第一时间会认为是软件或游戏出错了 其实并不是这样 其主要原因就是你电脑系统的该dll文件丢失了或没有安装一些系统软件平台所需要的动态链接库 这时你可以下载这个usbui d
  • 计算机SSM毕设选题 SSM的智能仓储管理系统

    项目背景 随着科学技术的飞速发展 社会的方方面面 各行各业都在努力与现代的先进技术接轨 通过科技手段来提高自身的优势 智能仓储系统当然也不能排除在外 智能仓储系统是以实际运用为开发背景 运用软件工程开发方法 采用jsp技术构建的一个管理系统
  • WMASF.DLL文件缺少导致程序无法运行问题

    其实很多用户玩单机游戏或者安装软件的时候就出现过这种问题 如果是新手第一时间会认为是软件或游戏出错了 其实并不是这样 其主要原因就是你电脑系统的该dll文件丢失了或没有安装一些系统软件平台所需要的动态链接库 这时你可以下载这个WMASF D
  • UI自动化测试方案

    2024软件测试面试刷题 这个小程序 永久刷题 靠它快速找到工作了 刷题APP的天花板 CSDN博客 文章浏览阅读1 3k次 点赞60次 收藏8次 你知不知道有这么一个软件测试面试的刷题小程序 里面包含了面试常问的软件测试基础题 web自动
  • Selenium定位元素的方法css和xpath的区别!

    selenium是一种自动化测试工具 它可以通过不同的定位方式来识别网页上的元素 如id name class tag link text partial link text css和xpath css和xpath是两种常用的定位方式 它们
  • 一篇文章带你了解Python常用自动化测试框架——Pytest

    2024软件测试面试刷题 这个小程序 永久刷题 靠它快速找到工作了 刷题APP的天花板 CSDN博客 文章浏览阅读1 3k次 点赞60次 收藏8次 你知不知道有这么一个软件测试面试的刷题小程序 里面包含了面试常问的软件测试基础题 web自动
  • 作业帮2024届秋招/校招内推信息/内推码

    公司名称 作业帮 内推码 NTABmy8 内推来源 内推鸭小程序 2000 企业内推人发布内推码 官方招聘网站
  • SQL语句---select基本查询语句

    2024软件测试面试刷题 这个小程序 永久刷题 靠它快速找到工作了 刷题APP的天花板 CSDN博客 文章浏览阅读1 3k次 点赞62次 收藏10次 你知不知道有这么一个软件测试面试的刷题小程序 里面包含了面试常问的软件测试基础题 web自
  • 比特大陆/算能科技2024届秋招/校招内推信息/内推码

    公司名称 比特大陆 算能科技 内推码 ISKTJR 内推来源 内推鸭小程序 2000 企业内推人发布内推码 官方招聘网站
  • Jmeter post请求传参问题

    同线程组引用参数 新增数据bizId 然后将此次新增数据删除 添加新增 数据接口 然后查询数据列表 正则表达式提取bizId 在删除接口引用此值 bizId 添加断言 执行查看结果 json格式的post请求 摘要 正在执行的活动内容修改
  • 沐瞳科技2024届秋招/校招内推信息/内推码

    公司名称 沐瞳科技 内推码 TC4GYC9 内推来源 内推鸭小程序 官方招聘网站 沐瞳科技内推
  • wmi.dll文件缺少导致程序无法运行问题

    其实很多用户玩单机游戏或者安装软件的时候就出现过这种问题 如果是新手第一时间会认为是软件或游戏出错了 其实并不是这样 其主要原因就是你电脑系统的该dll文件丢失了或没有安装一些系统软件平台所需要的动态链接库 这时你可以下载这个wmi dll
  • 自动化技术框架选型的思考

    2024软件测试面试刷题 这个小程序 永久刷题 靠它快速找到工作了 刷题APP的天花板 CSDN博客 文章浏览阅读1 5k次 点赞69次 收藏10次 你知不知道有这么一个软件测试面试的刷题小程序 里面包含了面试常问的软件测试基础题 web自
  • 思特威2024届秋招/校招内推信息/内推码

    公司名称 思特威 内推码 3741B75 内推来源 内推鸭小程序 2000 企业内推人发布内推码 官方招聘网站 https www ivvajob com company sitewei 80wCo25I273 positionList w
  • Python自动化测试工具Selenium使用踩坑

    2024软件测试面试刷题 这个小程序 永久刷题 靠它快速找到工作了 刷题APP的天花板 CSDN博客 文章浏览阅读1 3k次 点赞60次 收藏8次 你知不知道有这么一个软件测试面试的刷题小程序 里面包含了面试常问的软件测试基础题 web自动
  • 诗悦网络2024届秋招/校招内推信息/内推码

    公司名称 诗悦网络 内推码 NTANdQx 内推来源 内推鸭小程序 官方招聘网站 广州诗悦网络科技有限公司 内部推荐
  • 如何使用Python开发Qt应用的自动化测试

    2024软件测试面试刷题 这个小程序 永久刷题 靠它快速找到工作了 刷题APP的天花板 CSDN博客 文章浏览阅读1 3k次 点赞60次 收藏8次 你知不知道有这么一个软件测试面试的刷题小程序 里面包含了面试常问的软件测试基础题 web自动