06 2024 档案
摘要:1. 强制等待:sleep() 缺点:指定的时间过长,即使元素已经被加载出来了,但还是要是要继续等待,浪费时间。 2. 隐式等待: 缺点:可以把隐式等待当做全局变量,影响整个页面,程序需要等待整个页面加载完成才会执行下一步。但可能页面加载未完成时,需要定位的元素已经加载完成了,但受限于某些 JS 文
阅读全文
摘要:键盘操作: (1)删除键 (2)空格键 (3)回车键 (4)制表键 (5)全选、复制、剪切、粘贴 from selenium import webdriverimport timefrom selenium.webdriver.common.keys import Keysdriver = webd
阅读全文
摘要:背景: 用 selenium 做自动化时,有时需要模拟鼠标操作,比如单击、双击、点击鼠标右键、拖拽等。selenium 提供了一个类处理事件 ActionChains 鼠标操作: (1)执行操作 (2)左键、右键单击、双击 (3)鼠标悬停到元素、偏移处 (4)长按 (5)拖动 执行操作: perfo
阅读全文
摘要:针对元素的简单操作: (1)点击: element.click() (2)输入内容、清除内容: element.send_keys("内容") element.clear() (3)返回元素尺寸、坐标: element.size element.location (4)获取元素标签文本: eleme
阅读全文
摘要:控制浏览器操作: (1)最大化、最小化浏览器: driver.maximize_window() (2)控制、获取浏览器大小: driver.get_window_size() (3)获取当前标签页 title、url: print("标签页title:{}".format(driver.title
阅读全文
摘要:如何应对复杂场景的 API 测试? 测试场景一:被测业务操作是由多个 API 调用协作完成 背景:一个单一的前端操作可能会触发后端一系列的 API 调用,此时 API 的测试用例就不再是简单的单个 API 调用,而是一系列 API 的调用。 存在情况: (1)存在后一个 API 需要使用前一个 AP
阅读全文
摘要:什么是软件测试? 正向思维:通过程序是否正常运行,以及是否达到了用户预期的需求 逆向思维:通过执行测试用例发现程序的错误和缺陷 软件测试的目的是什么? 找出软件中潜在的错误和缺陷,通过修复错误和缺陷提高软件的质量,回避软件发布后因缺陷或错误带来的商业风险。 黑盒、白盒、灰盒的区别: 黑盒测试(数据驱
阅读全文
摘要:软件测试的对象: 程序、数据、文档 "好的"测试用例的标准是什么: (1)测试用例应该 100% 覆盖测试业务需求 (2)从用户使用场景出发,考虑用户各种正常和异常的使用场景 (3)用例颗粒度大小要均匀 (4)用例要素要齐全,步骤详细,操作明确 (5)做好用例评审,及时更新测试用例 常见系统测试主要
阅读全文
摘要:最常见的黑盒测试方法: 等价类划分: 将所有可能的输入数据划分成若干个子集 任意一个输入数据若是有效的则构成有效等价类 输入数据对于揭露程序中潜在错误都具有同等效果则构成无效等价类 后续只要从每个等价类中任意选取一个值进行测试,就可以用少量具有代表性的测试输入取得较好的测试覆盖结果。 边界值分析:
阅读全文
摘要:如何理解一个“好的”测试用例? “好的”测试用例一定是一个完备的集合,它能够覆盖所有等价类以及各种边界值,而跟能够发现缺陷无关。 举例子: 被测软件 鱼塘 软件缺陷 鱼 测试用例集 渔网 “好的”测试用例集就是一张能够覆盖整个鱼塘的大鱼网,只要鱼塘里有鱼,就能给捞上来。 如果渔网本身是完整合格的,那
阅读全文
摘要:1.测试覆盖率: 用来衡量测试的充分性和完整性,从广义的角度来讲,测试覆盖率主要分为两大类: (1)需求覆盖率 (2)代码覆盖率 需求覆盖率: 定义:指测试对需求的覆盖程度,通常做法是将一条分解后的软件需求和对应的测试用例建立一对多的映射关系,最终目标是保证测试可以覆盖每个需求。 现状:需求覆盖率统
阅读全文
摘要:1.缺陷标题: 通常采用 在什么情况下发生了什么问题 的模式,尽可能描述问题本质。 2.优先级:开发以此为依据来决定修复该缺陷的优先级 3.严重程度:衡量缺陷的严重程度,并决定是否要等该缺陷被修复后才能发布产品 4.前置条件:指测试步骤开始前系统应该处在的状态,目的是减少缺陷重现步骤的描述。 5.重
阅读全文
摘要:1. 测试计划的好处: (1)明确测试范围,采取怎样的测试策略; (2)预估具体的工作量和测试资源,每个人分工明确,不容易出现重复测试的情况; (3)测试进度是可控的,实时知道目前测试完成情况; (4)提前识别潜在风险,当需求发生变化时可以做出响应; 2. 测试计划内容: (1)测试范围: 包含:被
阅读全文
摘要:1. 业务功能测试应该具备的核心竞争力 按重要程序顺序归纳: 1. 测试策略设计 2.测试用例设计 3.快速学习 4.探索性测试思维 5.缺陷分析 6.自动化测试技术 7.良好的沟通 2. 测试策略设计(核心竞争力) 对于各种不同的被测软件,能够快速准确地理解需求,并在有限的时间和资源下明确测试重点
阅读全文
摘要:互联网产品的测试策略: 重量级API测试,轻量级GUI测试,轻量级单元测试 以中间层的 API 测试为中点做全面测试 轻量级的 GUI 测试:只覆盖最核心直接影响主营业务的 E2E 场景,利用探索式测试思维,以人工测试的方式发现尽可能多的潜在问题 单元测试:只对那些相对稳定且核心的服务和模块开展全面
阅读全文
摘要:1. Allure框架:该框架是一个报告框架。 Allure是一个轻量级、非常灵活、支持多平台和多语言的报告框架,并且能够很好地兼容大多数测试框架,如 pytest、TestNG,Junit 等。 2. Allure安装与配置: pip install allure-pytest pip insta
阅读全文
摘要:1. fixture 参数化方式: (1)使用 fixture 的 params 方式实现参数化,固件对象传入的参数名固定是 request,且必须返回参数对象 request.param。 (2)使用 @pytest.mark.parametrize() 装饰测试用例 parametrize 第一
阅读全文
摘要:1. 跳过用例 skip: 当有部分测试用例还没实现,但是又需要先运行整个模块进行调试时,可以使用 skip 跳过指定的某些用例以达到测试通过的效果。 @pytest.mark.skip(reason="指定跳过原因") def test_case(): pass 有条件跳过某些内容: @pytes
阅读全文
摘要:1. conftest.py 文件: 是 pytest 框架中重要的一个东西,可以实现 fixture 对象自对应并自动应用完成跨模块、跨文件的应用操作,从而使 fixture 对象的定义更加灵活、方便。 大白话:实现 fixture 跨模块、跨文件,多个 .py 文件都可以调用 fixture 功
阅读全文
摘要:1. fixture 的3种调用方式: (1)将 fixture 名称直接作为测试函数或者测试类中方法参数传入,前提是需要自定义好对应的 fixture,直接传入fixture名称(即函数名即可)。 (2)使用 pytest.mark.usefixtures("fixture名称") 装饰测试函数或
阅读全文
摘要:1.pytest的框架结构: 模块级、函数级、类级、方法级: 类似 unittest 框架中的 setUp 和 tearDown,主要应用在测试方法之前或者测试方法之后,为测试过程提供前置或后置条件。可以装置数据,也可以完成环境配置等操作。 pytest支持 5 个层次的 setup 和 teard
阅读全文
摘要:1. mock 简介: mock 技术主要分为两类: mock服务:实现 mock 功能的一个服务 mock数据:mock 一个对象,写入一些预期值 mock 模块是 Python 的测试框架 unittest 下的一个子库,可以模拟一个方法、一个对象或者一个类,然后使用模拟的对象替换系统的一部分,
阅读全文
摘要:1. JSON:一种轻量级的数据交换格式,一般接口返回的数据类型都是JSON。 JSON的定义格式与字典相同,也是键值对方式,如{key:value}。其实 JSON 是字符串,由于字符串不能用 key、value 来取值,所以要先转换为字典才可以。 2. JSON 模块常用的四个方法: (1)js
阅读全文
摘要:1. 接口的概念及本质: 接口:实现前端和后端之间数据通信的桥梁,本质就是数据的输入与输出的过程。接口就是有特定输入和特定输出的一套逻辑处理单元。 什么是接口测试: 接口测试其实就是验证接口内部处理逻辑是否正确,既要保证单接口的正确性,也要保证接口的业务逻辑正确性,主要体现在两方面: ① 输入正常的
阅读全文
摘要:1.分层模型: (1)页面元素处理层:即 Page Object(PO模式)表示页面对象管理,将每个页面上所有元素定义在一个模块中,便于维护脚本。 (2)业务流操作层:基于页面元素处理层实现业务流的自由组织,对应自动化测试的业务流场景的执行测试用例。 (3)测试用例层:根据业务流场景设计相应的测试用
阅读全文
摘要:1.Selenium 简介: Selenium 是一款免费的、开源的、基于 Web 页面的 UI 自动化测试工具,可以支持多个浏览器。 2.Selenium 框架由多个工具组成:Selenium IDE、Selenium RC、Selenium WebDriver、Selenium Grid (2.
阅读全文
摘要:1.什么是 HTML: HTML 称为超文本标记语言,是一种用于描述网页的语言,主要由一系列的标签构成。HTML 的本质就是文本,但是它需要通过浏览器进行解释并渲染。 2.HTML 元素: HTML 文档最基本的构成是 HTML 元素,它是使用标签来表现的。 HTML 元素分为三种类型:块状元素、内
阅读全文
摘要:1.数据驱动思想: 实现数据与脚本代码的分离操作,将数据存储在指定的数据格式文件或数据库中,如 Excel、Json、Yaml、Mysql 等。 2.关键字驱动思想: 基于数据驱动思想实现进一步的封装,以行为动作驱动业务。将每一步操作封装在单独的类、单独的函数中,一个函数或者一个类中的方法可以表示一
阅读全文