从源码到实战:探寻App中的等待神秘力量,强制等待 vs 隐式等待对决

简介

添加等待是为了确保自动化脚本在执行过程中与应用程序之间的同步和稳定性。

应用程序的响应时间是不确定的,可能存在网络延迟、加载时间、动画效果等因素。如果在执行自动化脚本时没有适当的等待机制,脚本可能会在应用程序还未完成相应操作或加载完成之前继续执行下一步,导致测试失败或产生不稳定的结果。

通过添加适当的等待操作,可以使脚本在关键操作后等待一段时间,以确保应用程序完成相关任务或操作。这可以包括显式等待(例如等待特定元素出现、消失或可点击),或隐式等待(在整个脚本执行过程中设置一个全局的等待时间)。

等待操作有助于提高脚本的稳定性,减少因应用程序响应不一致而导致的测试失败。它还能够模拟用户在与应用程序交互时的真实等待时间,提供更真实的测试场景。

因此,在编写自动化脚本时,考虑添加适当的等待操作是一个重要的实践,可以提高脚本的可靠性和稳定性,并确保脚本与应用程序之间的同步。

强制等待

显式等待基本使用

  • 解决方案:在报错的元素操作之前添加等待。

  • 原理:线程休眠一定时间。

  • time.sleep(3)

  • import time
    from appium import webdriver
    from appium.options.android import UiAutomator2Options
    from appium.webdriver.common.appiumby import AppiumBy
    from selenium.webdriver.support import expected_conditions
    from selenium.webdriver.support.wait import WebDriverWait
    
    
    class TestWait:
    
        def setup_class(self):
            '''
            完成 capability 设置
            初始化 driver
            :return:
            '''
            # 设置 cpability
            caps = {
                # 设置 app 安装的平台(Android,iOS)
                "platformName": "Android",
                # 设置 appium 驱动
                "appium:automationName": "uiautomator2",
                # 设置设备名称
                "appium:deviceName": "emulator-5554",
                # 设置被测 app 的包名
                "appium:appPackage": "io.appium.android.apis",
                # 设置被测 app 启动页面的 Activity
                "appium:appActivity": ".ApiDemos",
                # 不清空缓存信息
                "appium:noReset": True,
                # 首次启动的时候,不停止app
                "appium:dontStopAppOnReset": True,
                # 跳过安装,权限设置等操作
                "appium:skipDeviceInitialization": True,
            }
    
            # 初始化 driver
            self.driver = webdriver.Remote(
                "http://127.0.0.1:4723",
                options=UiAutomator2Options().load_capabilities(caps)
            )
    
        def teardown_class(self):
            '''
            关闭 driver
            :return:
            '''
            self.driver.quit()
    
        def test_wait(self):
            '''
            点击 OS 按钮后等待 3 秒
            输入框输入内容后等待 2 秒
            点击返回按钮后等待 2 秒
            :return:
            '''
            # 测试步骤
            # 找到 OS 元素
            el5 = self.driver.find_element(by=AppiumBy.ACCESSIBILITY_ID, value="OS")
            # 点击 OS 元素
            el5.click()
            # 等待 3 秒
            time.sleep(3)
            # 找到 Morse Code 元素
            el6 = self.driver.find_element(AppiumBy.ACCESSIBILITY_ID, "Morse Code")
            el6.click()
            # 找到输入框元素
            el7 = self.driver.find_element(AppiumBy.ID, "io.appium.android.apis:id/text")
            # 在输入框中输入内容
            el7.send_keys("ceshiren.com")
            # 等待 2 秒
            time.sleep(2)
            # 点击返回按钮
            self.driver.back()
            # 等待 2 秒
            time.sleep(2)
            # 点击返回按钮
            self.driver.back()
            # 断言:判断首页中第一个元素的文本内容是 Access'ibility
            result = self.driver.find_element(
                AppiumBy.XPATH,
                "//*[@resource-id='android:id/text1'][1]"
            )
            print(result.text)
            assert result.text == "Access'ibility"

    隐式等待

  • 问题:难以确定元素加载的具体等待时间。

  • 解决方案:针对于寻找元素的这个动作,使用隐式等待添加配置。

  • 演练环境:雪球 app。

  • 原理:隐式等待是一种全局的等待方式,设置一个等待时间,轮询查找(默认 0.5 秒)元素是否出现,如果没出现就抛出异常。

  • 
    #设置一个等待时间,轮询查找(默认0.5秒)元素是否出现,如果没出现就抛出异常
    driver.implicitly_wait(3)

    隐式等待无法解决的问题

  • 元素可以找到,使用点击等操作,出现报错。

  • 原因:

    • 页面元素加载是异步加载过程,通常 xml 会先加载完成,相应的元素属性后加载。

    • 元素存在与否是由 xml 决定,元素的交互是由属性决定。

    • 隐式等待只关注元素能不能找到,不关注元素能否点击或者进行其他的交互。

  • 示例:WebDriverWait(driver实例, 最长等待时间, 轮询时间).until(结束条件)。

  • 原理:在最长等待时间内,轮询,是否满足结束条件。

  • 注意:在初级时期,先关注使用。

    • 解决方案:使用显式等待。

    • # 显示等待 Morse Code 元素可点击
      WebDriverWait(self.driver, 10).until(
          expected_conditions.element_to_be_clickable(
              (AppiumBy.ACCESSIBILITY_ID, "Morse Code")))
      # 找到 Morse Code 元素
      el6 = self.driver.find_element(AppiumBy.ACCESSIBILITY_ID, "Morse Code")
      el6.click()

      总结

      Appium 提供了三种等待方式,确保测试脚本在执行时与应用程序状态同步。这些等待分为强制等待、隐式等待和显式等待三种。用户可以根据不同的需求结合使用这些等待方式,以提高测试脚本的稳定性和可靠性。

      推荐学习

      全栈开发与测试定向培养班,内容全面升级,可选择岗位更多,就业面更广。4 个月 30+ 项目实战强化训练,资深测试架构师、开源项目作者亲授 BAT 大厂前沿最佳实践,0基础可学,带你一站式掌握测试开发必备核心技能!增加名企私教服务,针对性解决工作难题。直推 BAT 名企测试经理,简历指导+模拟面试+面试复盘,助你斩获更多Offer!

推荐学习

【霍格沃兹测试开发】7天软件测试快速入门 带你从零基础/转行/小白/就业/ 测试用例设计实战 
【霍格沃兹测试开发】最新版!Web自动化测试从入门到精通/电子商务产品实战/Selenium(上集)
【霍格沃兹测试开发】最新版!Web自动化测试从入门到精通/电子商务产品实战/Selenium(下集)
【霍格沃兹测试开发】明星讲师精心打造最新Python教程软件测试开发从业者必学(上集)
【霍格沃兹测试开发】明星讲师精心打造最新Python教程软件测试开发从业者必学(下集)
【霍格沃兹测试开发】精品课合集/自动化测试/性能测试/精准测试/测试左移/测试右移/人工智能测试
【霍格沃兹测试开发】腾讯/百度/阿里/字节测试专家技术沙龙分享合集/精准化测试/流量回放/Diff
【霍格沃兹测试开发】Pytest用例结构/编写规范 /免费分享
【霍格沃兹测试开发】JMeter实时性能监控平台/数据分析展示系统Grafana/Docker安装
【霍格沃兹测试开发】接口自动化测试的场景有哪些?为什么要做接口自动化测试?如何一键生成测试报告?
【霍格沃兹测试开发】面试技巧指导/测试开发能力评级/1V1模拟面试实战/冲刺年薪百万!
【霍格沃兹测试开发】腾讯软件测试能力评级标准/要评级表格的联系我
【霍格沃兹测试开发】Pytest与Allure2一键生成测试报告/测试用例断言/数据驱动/参数化
【霍格沃兹测试开发】App功能测试实战快速入门/adb常用命令/adb压力测试
【霍格沃兹测试开发】阿里/百度/腾讯/滴滴/字节/一线大厂面试真题讲解,卷完拿高薪Offer!
【霍格沃兹测试开发】App自动化测试零基础快速入门/Appium/自动化用例录制/参数配置
【霍格沃兹测试开发】如何用Postman做接口测试,从入门到实战/接口抓包(最新最全教程)
【霍格沃兹测试开发】6小时轻松上手功能测试/软件测试工作流程/测试用例设计/Bug管理
【霍格沃兹测试开发】零基础小白如何使用Postman,从零到一做接口自动化测试/从零基础到进阶到实战
【霍格沃兹测试开发】建议收藏全国CCF测试开发大赛Python接口自动化测试赛前辅导 /项目实战
新手专区--7小时入门软件测试
新手专区--接口测试入门到实战精通
面试专区--软件测试如何获得高薪?
提升专区--测试开发技能图谱
新手专区 -- 软件测试精品课教程合集
【软件测试教程】软件测试面试实战之软件测试用例编写(一)
【软件测试教程】面试必问的软件测试基本理论及概念
【软件测试教程】面试必会问到的软件测试用例基本理论及方法
【软件测试教程】大厂的软件测试体系是什么样的?
【软件测试教程】名企大厂软件开发流程案例分析
【软件测试教程】做软件测试必须要懂的软件开发流程
【软件测试教程】做测试必须要了解的最常用的几种软件开发模型
【软件测试教程】软件测试如何在面试中向HR要到更高的薪资?
【软件测试教程】如何根据招聘需求选择最值得入职的软件测试岗位?
【软件测试教程】一线互联网名企软件测试岗位招聘具体流程揭秘
【软件测试教程】BAT大厂软件测试简历拆解及细节分析
【软件测试教程】撰写软件测试简历时必须要注意的5个事项
【软件测试教程】能进入BAT一线互联网大厂的优质软件测试简历必须包含的7大板块
软件测试工程师简历面试教程攻略--如何写出能进BAT大厂测开岗的优质简历?如何在面试中向HR要到更高薪资?如何拿到更高级别的offer?--持续更新!
【软件测试教程】自动化测试入门-只能二维码登录,自动化测试怎么做?

【软件测试教程】Appium自动化测试-九宫格解锁

【软件测试教程】面试现写10个linux命令,写不出来怎么办(上)

【软件测试教程】面试现写10个linux命令,写不出来怎么办(下)

【软件测试教程】自动化测试-比fiddler更好用的抓包工具,你知道吗?

【软件测试教程】使用python如何去做接口自动化测试?

【软件测试教程】自动化测试-如何使用selenium自动发邮件

【软件测试教程】软件测试入门进阶-测试新人的如何学习更容易涨薪

【软件测试教程】学会这个技巧,测试用例设计完全无压力

【软件测试教程】Allure一节课学会生成业内最优秀的自动化测试报告

【软件测试教程】自动化测试-selenium grid 搭建分布式测试平台

【软件测试教程】零基础掌握接口测试神器postman

【软件测试教程】UI自动化的高级定位,你学会了吗?

【软件测试教程】自动化测试-pytest测试框架

【软件测试教程】自动化测试框架-pytest测试框架详解

【软件测试教程】接口测试用例应该如何设计

【软件测试教程】Appium自动化测试-实现企业微信自动打卡

【软件测试教程】软件测试入门进阶-面试官常问的adb命令

【软件测试教程】Python+Excel自动化管理测试用例

【软件测试教程】自动化测试神器-charles抓包工具的使用

【软件测试教程】Appium 企业微信自动打卡

【软件测试教程】性能测试核心攻略-性能监控数据展示

【软件测试教程】软件测试入门进阶-面试中的测试用例设计思路

【软件测试教程】软件测试入门进阶-面试必考的SQL核心知识

测试开发公开课

【软件测试教程】移动端自动化测试appium电商自动下单流程

【软件测试教程】移动端自动化appium安装避坑指南

【软件测试教程】零基础掌握接口测试神器postman

【软件测试教程】软件测试高薪成长路线

【软件测试教程】一节课!帮你搞定Appium环境安装

【软件测试教程】面试官让你现写10个Linux命令,怎么写?

【软件测试教程】小白也能快速上手的神器工具的monkey

【软件测试教程】高级测试开发工程师必会的算法

【软件测试教程】自动化测试碰到二维码登录怎么办

【软件测试教程】软件测试小白如何学习成长最快

【软件测试教程】面试官爱问的adb命令,你掌握了么?

【软件测试教程】高薪软件测试工程师成长路线

【软件测试教程】高级软件测试才会的数据库的进阶使用

【软件测试教程】面试现写sql查询语句

【软件测试教程】测试开发必会-自动化测试框架pytest

【软件测试教程】三十分钟搞定App性能测试

【软件测试教程】经典软件测试开发面试题冒泡排序

【软件测试教程】一节课搞定面试现场写软件测试用例

【软件测试教程】一节课掌握超好用的软件测试框架pytest

【软件测试教程】常用linux基础命令

【软件测试教程】测试平台开发入门之Vue基础语法实战

【软件测试教程】docker-compose管理多个容器

【软件测试教程】自动化测试pytest实战案例

【软件测试教程】面试官爱问的常用linux命令,你会了吗?

【软件测试教程】七行代码搞定web自动化测试

【软件测试教程】你不知道的JMeter的高级技巧

【软件测试教程】让面试官眼前一亮的自动化测试技巧

【软件测试教程】面试官常问的adb命令

【软件测试教程】一节课教你掌握经典面试题冒泡排序

【软件测试教程】管理测试环境必备工具Shell

【软件测试教程】面试加分的移动端自动化测试技巧-高级定位技巧

【软件测试教程】一节课入门BAT级别的测试开发知识点springboot

【软件测试教程】快速入门接口测试-接口项目落地

【软件测试教程】自动化测试必会-java数据驱动

【软件测试教程】数据库必会技能-面试现写sql查询语句

【软件测试教程】3分钟搭建各种测试常用网站

【软件测试教程】自动化测试必会-python面向对象

【软件测试教程】面试现写sql查询语句写不出来怎么办

【软件测试教程】面试官问java如何读写文件,你怎么回答

【软件测试教程】Java测试平台开发入门篇之vue基础语法实战

接口测试入门到实战精通

【软件测试教程】测开必备工具mitmproxy

【软件测试教程】雪球app抓包与mock实战(一)

【软件测试教程】雪球app抓包与mock实战(二)

【软件测试教程】雪球app抓包与mock实战(三)

【软件测试教程】软件测试、开发工程师必备工具curl

【软件测试教程】session、cookie、token区别

【软件测试教程】get、post区别实战详解

【软件测试教程】结构化请求体构造JSON XML

22:49【软件测试教程】结构化响应断言JSON XML

【软件测试教程】一节课入门BAT级别的测试开发知识点springboot

【软件测试教程】性能测试压测实战-JMeter+InfluxDB+Grafana压测数据展示

【软件测试教程】高级软件测试必备-管理测试环境必备工具Shell

【软件测试教程】软件测试核心干货-面试中测试用例设计思路

【软件测试教程】软件测试面试实战-面试现写sql查询语句写不出来怎么办

【软件测试教程】零基础学测试如何比别人更快拿到好的offer

【软件测试教程】零基础掌握接口测试神器postman

【软件测试教程】移动端自动化测试-Appium环境入门

【软件测试教程】移动端自动化测试-使用APPIUM实现电商APP下单流程

【软件测试教程】教你高级测试才会的日志分析方法

【软件测试教程】软件测试数据库-面试现写sql查询语句写不出来怎么办

【软件测试教程】测试开发必备-移动端自动遍历工具

【软件测试教程】高级测试开发教程-Docker一条命令搭建测试流程管理环境

【软件测试教程】软件测试高薪秘籍-零基础学测试如何比别人拿到更高薪的offer

【软件测试教程】自动化测试教程-经典面试题java多线程你熟悉吗?

【软件测试教程】软件测试用例设计

【软件测试教程】高级性能测试数据展示

【软件测试教程】高级软件测试开发-面试官都喜欢问的高级定位原理你知道吗

【软件测试教程】appium移动端自动化测试实现电商app下单流程

【软件测试教程】自动化测试必备-面试官问java如何读写文件,你怎么回答

【软件测试教程】1小时快速入门接口测试

【软件测试教程】接口测试必会-charles抓包神器

【软件测试教程】软件测试开发持续集成利器-jenkins快速上手

【软件测试教程】自动化测试如何提高可维护性

【软件测试教程】自动化测试-Python与经典面试题手写冒泡排序

【软件测试教程】软件测试数据库专题-面试现写sql查询语句写不出来怎么办

【软件测试教程】性能测试入门实战

【软件测试教程】软件测试之shell实战项目-实现脚本抽奖小程序

【软件测试教程】软件测试实战项目系列-老板让我自己组建测试流程

【软件测试教程】软件测试必备Linux入门基础

【软件测试教程】自动化测试基础教程-如何使用自动化工具投简历

【软件测试教程】帮你搞定自动化测试平台与兼容性测试-stf平台

【软件测试教程】接口测试教程-15分钟建造接口测试环境

【软件测试教程】高级性能测试-JMeter+InfluxDB+Grafana压测数据展示

【软件测试教程】Java自动化测试平台开发入门篇之初识springboot

【软件测试教程】web自动化测试框架selenium-UI自动化测试如何绕过二维码登录

【软件测试教程】自动化测试入门教程-pytest测试框架

【软件测试教程】自动化测试教程-三剑客之awk

【软件测试教程】httprunner使用HttpRunner高效实现接口测试自动化

【软件测试教程】移动端自动化测试-Appium环境搭建及入门

【软件测试教程】APP自动化测试-移动端自动遍历工具

【软件测试教程】搞定软件测试数据库-mysql查询思维训练

【软件测试教程】自动化测试入门教程-python分支结构和循环结构

【软件测试教程】自动化测试入门教程-python模块与输入输出

【软件测试教程】零基础自学-大厂的软件测试体系

【软件测试教程】零基础自学-快速搞定接口测试

【软件测试教程】软件测试零基础自学教程-linux系统 与shell环境准备

【软件测试教程】测试开发必会-Docker基础

【软件测试教程】自动化测试入门教程-Java基础数据驱动

【软件测试教程】Java测试平台开发入门篇之vue基础语法实战

【软件测试教程】搞定自动化测试-java数据驱动

【软件测试教程】接口测试入门教程-HttpRunner

【软件测试教程】自动化测试教程-Xpath

【软件测试教程】自动化测试教程-Linux基础命令

【软件测试教程】自动化测试教程-Linux三剑客

【软件测试教程】自动化测试教程-pageobject企业微信实战

【软件测试教程】自动化测试与兼容性测试平台-stf平台

【软件测试教程】APP自动化测试-appium原理解析与九宫格解锁

【软件测试教程】接口测试教程-httprunner的基础使用

【软件测试教程】MySQL数据库基本增删改查与多表查询

【软件测试教程】自动化测试教程-Linux基础

【软件测试教程】自动化测试教程-jenkins快速上手

【软件测试教程】软件测试教程-mysql数据库环境搭建与表结构创建修改操作

【软件测试教程】PO设计模式在手机自动化测试中的应用

【软件测试教程】自动化测试入门教程-seleniumIDE录制以及常用api

【软件测试教程】web自动化测试入门-cookie

【软件测试教程】软件测试进阶-Shell基础

【软件测试教程】Python自动化测试入门-python字符串数据结构

【软件测试教程】自动化测试必会教程-pageobject

【软件测试教程】web自动化测试selenium高级用法-CssSelector

【软件测试教程】移动端app自动化测试-Appium环境搭建及入门

【软件测试教程】高级自动化测试必备-python函数与模块

【软件测试教程】接口测试入门实战-基于企业微信api进行接口测试

【软件测试教程】自动化测试selenium高级用法-xpath定位

【软件测试教程】软件测试数据库必备-mysql查询

【软件测试教程】自动化测试必会-python条件、循环表达式

【软件测试教程】接口测试工具之charles高级用法代理抓包+数据篡改

【软件测试教程】高级自动化测试入门-selenium基础

【软件测试教程】Java自动化测试平台初识springboot

【软件测试教程】名企的软件开发流程是怎样的

【软件测试教程】Java 自定义注解 模拟数据驱动

【软件测试教程】安全测试专家邀你在线实操转帐安全

【软件测试教程】高级软件测试开发服务集群架构docker+k8s

【软件测试教程】利用Jenkins自己搞定测试环境自动发布

【软件测试教程】自动化测试平台与兼容性测试-STF多设备管理平台

【测试教程】亿级流量App项目管理攻略

【测试教程】真实金融安全问题解析,近距离接触安全测试

【测试教程】移动自动化入门之路+成长路径

【测试教程】appium元素定位+测试报告

【测试教程】软件测试HR教你谈薪资

【测试教程】如何高效率交付测试工作

【测试教程】用Python做自动化测试-数据分析

【测试教程】前端渲染时长的统计方案-

【测试教程】APP自动化测试 Page Object实战-思寒

【测试教程】测试质量体系建设实践方法

【测试教程】利用Jenkins自己搞定测试环境自动发布

【测试教程】appium入门-九宫格解锁

【测试教程】Linux三剑客实战--shell经典面试题大解密

【测试教程】从质量保障体系引发的测试管理思考

【测试教程】接口自动化测试体系构建

【测试教程】软件测试简历指导-让你的简历会说话

【测试教程】性能测试与性能分析的价值体现

【测试教程】性能分析大师如何给出关键论据分析需求

【测试教程】移动自动化测试中的小技巧

【测试教程】接口测试公开课(二)-数据驱动

【测试教程】一节课教你将性能分析报告做的有颜又有料

【测试教程】Linux三剑客进阶

【APP自动化测试教程】使用Page Object设计模式提高自动化测试脚本的可维护性

接口测试

【接口测试】rest-assured高级进阶-对接口时间进行断言、导出数据【软件测试】

【接口测试】rest-assured高级进阶-发送json请求【软件测试】

【接口测试】断言机制实战演练-2【软件测试】

【接口测试】断言机制实战演练-1【软件测试】

【接口测试】断言机制基础讲解【软件测试】

【接口测试】移动端代理抓包-数据拦截与修改实战演练【软件测试】

【接口测试】移动端代理抓包-数据拦截与修改方法教学【软件测试】

【接口测试】Charles高阶项目实战演练【软件测试】

【接口测试】Charles拦截请求和拦截响应【软件测试】

【接口测试】Charles的重要特性【软件测试】

【接口测试】Burpsuite重要特性【软件测试】

【接口测试】Curl常见用法及代理工具分析【软件测试】

【接口测试】HTTP协议组成及客户端模拟请求工具【软件测试】

【接口测试】HTTP协议-代理工具抓包和篡改结果【软件测试】

【接口测试】接口测试--协议分析工具【软件测试】

【接口测试】接口测试常见的协议【软件测试】

【接口测试】接口测试的意义与入门基础【软件测试】

【软件测试】接口测试入门到实战精通-协议、框架、持续集成、断言、运行与维护-教你如何从零开始搞定接口测试

【软件测试】java语言rest-assured框架进行接口测试实战

【测试教程】软件测试工程师高段位进阶之路

【测吧】软件测试开发BAT一线名企面试指南-小白慎点-(霍格沃兹测试学院)

【测吧】软件测试工程师如何拿到P5-P7高薪offer?

【测吧】1、2019年软件测试行业形势分析

【测吧】2、BAT一线名企软件测试职位解析

【测吧】3、百度、阿里软件测试面试题解析

【测吧】4、如何获取一线名企软件测试岗位内推?

【测吧】5、软件测试行业2018年度调查报告

【测吧】6、如何撰写优秀的个人技能-软件测试简历

【测吧】7、如何展示丰富的项目经验-软件测试简历

【测吧】8、如何写出一份完整的简历-软件测试简历

【测吧】9、解读百度质量部胜任力模型-软件测试技能图谱

【测吧】10、不同level软件测试工程师应具备的基本能力

【测吧】11、软件测试工程师技术背后的寓意

【测吧】12、软件测试工程师如何持续增强自己的技术水平?

【测吧】13、一线大厂软件测试面试必问的3个问题

【测吧】14、BAT+TM3经典软件测试面试题剖析

【测吧】15、一线名企软件测试面试必考的领域知识

【测吧】16、软件测试面试常见不通过的原因

【测吧】7小时入门软件测试

1.【测吧】软件测试基本概念-【7小时入门软件测试】

2.【测吧】软件测试阶段的测试流程-【7小时入门软件测试】

3.【测吧】软件测试技术分类讲解-【7小时入门软件测试】

4.【测吧】软件测试常见问题解答-【7小时入门软件测试】

5.【测吧】面向服务的接口测试体系-【7小时入门软件测试】

6.【测吧】软件测试开发-研发阶段的质量保证(测试左移)-【7小时入门软件测试】

7.【测吧】测试开发-发布后的质量监控(测试右移)-【7小时入门软件测试】

8.【测吧】软件测试技术体系图谱-【7小时入门软件测试】

9.【测吧】企业招人标准--软件测试高薪秘诀-【7小时入门软件测试】

10.【测吧】如何写好简历--软件测试高薪秘诀-【7小时入门软件测试】

11.【测吧】面试技能技巧--软件测试高薪秘籍-【7小时入门软件测试】

12.【测吧】真实案例分析--软件测试高薪秘籍-【7小时入门软件测试】

【测吧】2019年软件测试职业发展公开课(五)

【测吧】兼容性软件测试与自建测试实验室(中)

【测吧】软件测试入门-互联网测试流程和技术体系(上)

【测吧】软件测试入门-互联网测试流程和技术体系(下)

【测吧】面试官最爱问的兼容性软件测试

【测吧】Junit结合下一代测试报告框架Allure2

【测吧】如何从零开始高效的做好兼容性软件测试

【测吧】手机浏览器、webview、微信小程序自动化软件测试

【测吧】2019软件测试行业调查报告解读

【测吧】BAT软件测试岗位面试要点剖析+简历点评

【测吧】面试BAT软件测试开发,你需要具备哪些技能?

 

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值