12 2022 档案

摘要:allure特性 非动态特性 @allure.epic、@allure.feature、@allure.story、@allure.suite @allure.title、@allure.description @allure.step、with allure.step @allure.severi 阅读全文
posted @ 2022-12-31 19:44 暄总-tester 阅读(35) 评论(0) 推荐(0) 编辑
摘要:测试环境信息 测试环境信息无法通过allure特性实现,需要借助环境配置文件 配置文件名必须是environment.properties 文件必须放在allure生成的结果数据目录中才能生效 文件中的环境变量名以及变量个数可以自定义 systemVersion=win10 pythonVersio 阅读全文
posted @ 2022-12-31 19:41 暄总-tester 阅读(345) 评论(0) 推荐(0) 编辑
摘要:附件 allure.attach('要显示的文本或html代码', name='附件标题', attachment_type=附件类型) 只能写在函数或方法中,不能加@,不支持@allure.attach的写法 用于向测试报告中写入附加信息,通常是一些测试数据(不能上传文件) 附件标题用于表示显示的 阅读全文
posted @ 2022-12-31 19:37 暄总-tester 阅读(137) 评论(0) 推荐(0) 编辑
摘要:动态用例优先级 allure.dynamic.severity(用例优先级) 可以使用参数化的参数 只能放到函数和方法中 对于一个子功能或测试需求的每一条用例,都可以有自己的severity 写法 allure.severity_level.CRITICAL BLOCKER、CRITICAL、NOR 阅读全文
posted @ 2022-12-31 19:34 暄总-tester 阅读(69) 评论(0) 推荐(0) 编辑
摘要:动态用例标题 allure.dynamic.title('动态用例标题') 必须放在函数、方法之内 可以使用参数化的参数 每条用例执行一次 会覆盖@allure.title 动态用例描述 allure.dynamic.description('动态用例描述') 必须放在函数、方法之内 可以使用参数化 阅读全文
posted @ 2022-12-31 19:26 暄总-tester 阅读(205) 评论(0) 推荐(0) 编辑
摘要:动态测试集特性 allure.dynamic.suite('某用例所属的测试集名称') 动态特性放到函数或方法中 不建议使用allure.dynamic.suite,否则会导致测试集名称显示混乱:既包含模块名,又同时包括自定义测试集名,而正确的@allure.suite要么只有模块名,要么只有自定义 阅读全文
posted @ 2022-12-31 19:22 暄总-tester 阅读(158) 评论(0) 推荐(0) 编辑
摘要:生成独立的allure测试报告 pycharm生成的测试报告无法直接打开 pycharm自带容器(内置页面服务器),可以直接打开 但allure report下index.html文件是不能直接打开的,出现页面都是loading的情况 allure报告需要用allure命令渲染之后打开,才能展示效果 阅读全文
posted @ 2022-12-31 19:17 暄总-tester 阅读(166) 评论(0) 推荐(0) 编辑
摘要:用例优先级 @allure.severity(用例优先级) 表示测试用例的重要级别或错误的严重程度 BLOCKER:中断缺陷,如客服端程序无响应,无法执行下一步骤 CRITICAL:严重缺陷,如功能点缺失 NORMAL:普通缺陷,如数据计算错误,默认 MINOR:次要缺陷,如界面错误与ui需求不符 阅读全文
posted @ 2022-12-31 19:11 暄总-tester 阅读(129) 评论(0) 推荐(0) 编辑
摘要:用例标题 @allure.title('用例标题') 放在函数、方法之外,不建议放到类之外 每条用例执行一次 可以使用参数化的参数 用例描述 @allure.description('用例描述') 放在函数方法之外,不建议放到类之外 每条用例执行一次 不能使用参数化的参数 测试步骤 @allure. 阅读全文
posted @ 2022-12-31 16:51 暄总-tester 阅读(107) 评论(0) 推荐(0) 编辑
摘要:allure的特性 allure支持pytest自带的特性 fixture、parametrize、xfail、skip allure提供了很多特性(装饰器) allure可以将这些特性信息写入到测试报告中 @allure.suite、@allure.epic、@allure.feature、@al 阅读全文
posted @ 2022-12-31 16:09 暄总-tester 阅读(214) 评论(0) 推荐(0) 编辑
摘要:什么是allure allure是一款轻量级并且非常灵活的开源测试报告框架 支持绝大多数测试框架,例如TestNG、Pytest、JUint等 简单易用,易于集成 在python中使用allure,需要安装allure-pytest allure-pytest是Pytest的一个插件,通过它我们可以 阅读全文
posted @ 2022-12-31 15:57 暄总-tester 阅读(71) 评论(0) 推荐(0) 编辑
摘要:Allure简介 Allure是一款轻量级并且非常灵活的开源测试报告框架。 它支持绝大多数测试框架, 例如TestNG、Pytest、JUint等。 它简单易用,易于集成。 官网: http://allure.qatools.ru/ 文档: https://docs.qameta.io/allure 阅读全文
posted @ 2022-12-31 14:48 暄总-tester 阅读(122) 评论(0) 推荐(0) 编辑
摘要:配置文件pytest.ini pytest.ini是什么? pytest.ini是pytest的主配置文件,可以改变pytest的默认行为,有很多可配置的选项。 在执行文件根目录配置pytest.ini文件。 日志的作用: 我们可以借助日志帮忙调试程序; 借助日志做监控报警。 pytest 支持 自 阅读全文
posted @ 2022-12-31 14:45 暄总-tester 阅读(64) 评论(0) 推荐(0) 编辑
摘要:提升维护性策略 定位和操作都在page层,不方便维护 方案:把定位从page层分离到element层。 使用yaml作为element层描述元素定位条件的文件格式。 YAML格式 YAML(/ˈjæməl/)YAML 是一种简洁的非标记语言。 它是一个可读性高,用来表达数据序列化的格式。 YAML优 阅读全文
posted @ 2022-12-31 14:38 暄总-tester 阅读(131) 评论(0) 推荐(0) 编辑
摘要:添加赛区脚本 test_后台_双创_基础设置_赛区管理_添加赛区_case_v7.py 导入各个网页对象 改造to_division_manager 导入各个网页对象 导入各个网页对象: from page.后台_主页_page_v1 import BgHomePage from page.后台_双 阅读全文
posted @ 2022-12-31 14:23 暄总-tester 阅读(93) 评论(0) 推荐(1) 编辑
摘要:POM是什么 页面对象模型(POM)是一种设计模式,用来管理维护一组web元素集的对象库。 在POM下,应用程序的每一个页面都有一个对应的page class 每一个page class维护着该web页的元素集和操作这些元素的方法 page class中的方法命名最好根据其对应的业务场景进行 例如通 阅读全文
posted @ 2022-12-31 14:16 暄总-tester 阅读(112) 评论(0) 推荐(0) 编辑
摘要:为什么要使用csv文件格式 问题: 参数化的测试数据存在于py文件里,不利于维护。 方案: 利用外部文件存储测试数据。 文件格式选择csv的原因: csv格式较为通用、简单、方便读取。 什么是csv文件 csv文件: 逗号分隔值(Comma-Separated Values,CSV,有时也称为字符分 阅读全文
posted @ 2022-12-31 13:34 暄总-tester 阅读(136) 评论(0) 推荐(0) 编辑
摘要:pytest的conftest文件 conftest文件的作用: 一个专门存放 fixture 的配置文件。 多个测试用例文件(test_*.py)的所有用例都需要用到一个前置/后置操作,如登陆退出,浏览器的打开和关闭,模块自己的fixture写入自己的py文件中即可,对于一些全局的fixture, 阅读全文
posted @ 2022-12-31 01:33 暄总-tester 阅读(103) 评论(0) 推荐(0) 编辑
摘要:v4_1问题 代码运行效率较低: prepare_and_exit包含所有前置和后置步骤,每组测试数据都从重新启动浏览器开始到关闭浏览器结束。。 思考: 是否可以省略每组数据测试时的重新启动浏览器、重新登录、以及最后的退出登录和关闭浏览器步骤? 拆分fixture 拆分为三个fixture,区分作用 阅读全文
posted @ 2022-12-31 01:31 暄总-tester 阅读(66) 评论(0) 推荐(0) 编辑
摘要:第四版使用fixture test_后台_双创_基础设置_赛区管理_添加赛区_case_v4_1.py 使用fixture来做前置和后置处理。 使用yield来分隔前置后后置处理步骤。 定义prepare_and_exit方法 定义prepare_and_exit方法:实现前置/后置操作 @pyte 阅读全文
posted @ 2022-12-31 01:26 暄总-tester 阅读(82) 评论(0) 推荐(0) 编辑
摘要:pytest测试固件 通过装饰器@pytest.fixture(),定义测试固件(test fixture) 测试固件是什么? 也叫测试夹具,用于实现初始化的前置操作或清理扫尾的后置操作。 @pytest.fixture()修饰器来标记固定的工厂函数,在其他函数、模块、类或整个工程调用它时会被激活并 阅读全文
posted @ 2022-12-31 01:18 暄总-tester 阅读(61) 评论(0) 推荐(0) 编辑
摘要:参数化改进策略 把有效和无效的测试数据合并到一个测试方法里实现。 数据合并:容易 方法体合并:难度大 数据合并 有效:一个参数,改为两个参数 @pytest.mark.parametrize("division_name",["A","啊","1","#","我的测试赛区北京赛区上海赛区和广州赛区" 阅读全文
posted @ 2022-12-31 01:11 暄总-tester 阅读(108) 评论(0) 推荐(0) 编辑
摘要:新建第三版第一子版本脚本文件 test_后台_双创_基础设置_赛区管理_添加赛区_case_v3_1.py 合并添加赛区有效测试方法 test_add_division_success:实现前六条有效测试用例。 前六条测试数据有: "A","啊","1","#","我的测试赛区北京赛区上海赛区和广州 阅读全文
posted @ 2022-12-31 00:57 暄总-tester 阅读(65) 评论(0) 推荐(0) 编辑
摘要:第二版问题和改进方案 第二版问题:第二版代码中各个测试方法里有很多重复的操作步骤,没有复用,不方便代码的维护 改进方案:第三版本引入参数化方式管理所有测试用例的测试数据。 pytest参数化 unittest单元测试框架:数据驱动测试ddt模块 ddt 是第三方模块,需单独安装, pip insta 阅读全文
posted @ 2022-12-30 17:46 暄总-tester 阅读(65) 评论(0) 推荐(0) 编辑
摘要:面向对象实现test_007 pytest测试方法实现:在原来的步骤前后增加调用通用函数步骤 def test_007(self): self.login_to_add_division_page() driver=self.driver #第一版本的“添加赛区_007”所有测试步骤 …… self 阅读全文
posted @ 2022-12-30 17:35 暄总-tester 阅读(57) 评论(0) 推荐(0) 编辑
摘要:面向对象实现test_001 pytest测试方法实现:在原来的步骤前后增加调用通用函数步骤 def test_001(self): self.login_to_add_division_page() driver=self.driver #第一版本的“添加赛区_001”所有测试步骤 …… self 阅读全文
posted @ 2022-12-30 12:30 暄总-tester 阅读(41) 评论(0) 推荐(0) 编辑
摘要:新建第二版测试用例实现代码 新建Python文件:test_后台_双创_基础设置_赛区管理_添加赛区_case_v2.py 目标:提取通用操作方法。 注意:测试文件以 test_ 开头(以 _test 结尾也可以) 定义pytest测试类 定义赛区管理-添加赛区模块的测试类:TestAddDivis 阅读全文
posted @ 2022-12-30 12:23 暄总-tester 阅读(55) 评论(0) 推荐(0) 编辑
摘要:第一版问题和改进方案 第一版问题:第一版不能代码使用面向过程程序设计方式实现,不方便代码的复用和维护。 改进方案:第二版本引入pytest框架使用面向对象程序设计方式管理所有测试用例实现代码。 pytest简介 pytest是一个非常成熟的全功能的第三方Python单元测试框架 安装pytest: 阅读全文
posted @ 2022-12-30 12:06 暄总-tester 阅读(69) 评论(0) 推荐(0) 编辑
摘要:添加赛区_007总体流程 鼠标悬停在赛区名称文本框 检查出现浮动提示“该输入项为必输项” 滚动条滑动到底部 提交后检查提示不能为空 无效数据时取消添加 滚动条滑动到顶部 鼠标悬停在赛区名称文本框 顺序实现:鼠标悬停在赛区名称文本框 driver.find_element(By.XPATH,"//sp 阅读全文
posted @ 2022-12-30 11:59 暄总-tester 阅读(41) 评论(0) 推荐(0) 编辑
摘要:添加赛区_001总体流程 查询后如果存在就删除 添加时输入赛区 滚动条滑动到底部 提交后检查添加成功 滚动条滑动到顶部 查询存在该赛区信息 定位难点分析 难点1:提交无法定位 原因:提交按钮在界面下方,默认无法定位它,需要把滚动条拖拽到底部。 难点:在frame里无法滚动纵向滚动条。 解决方案:切换 阅读全文
posted @ 2022-12-30 11:47 暄总-tester 阅读(52) 评论(0) 推荐(0) 编辑
摘要:新建第一版测试用例实现代码文件 新建包testcasecode 新建文件:test_后台_双创_基础设置_赛区管理_添加赛区_case_v1.py 导入资源 导入各项资源 from selenium.webdriver.support import expected_conditions from 阅读全文
posted @ 2022-12-30 11:14 暄总-tester 阅读(52) 评论(0) 推荐(0) 编辑
摘要:AISE智慧教育服务平台系统介绍 AISE智慧教育服务平台是达内科技为在校学员研发的一款授课管理系统,该系统方便学员展示学习效果、参加校区比赛。 技术栈: 采用 B/S(Browser/Server,浏览器/服务器)系统结构、MySQL 数据库技术和 J2EE 技术开发。 两个子系统: 管理后台 学 阅读全文
posted @ 2022-12-30 11:07 暄总-tester 阅读(343) 评论(0) 推荐(0) 编辑
摘要:什么是自动化测试框架 可以把自动化测试的各个功能称作模块,需要的模块分为 基础模块,主要是怎么实现脚本编写,包括测试用例、测试套件、网页对象设计实现等 管理模块,主要包括持续集成、数据管理、日志管理、配置管理等 自动化测试框架就是把在自动化测试过程中用到的一些基础和管理功能分装成各个模块,进行自动化 阅读全文
posted @ 2022-12-30 11:02 暄总-tester 阅读(322) 评论(0) 推荐(0) 编辑
摘要:软件工程 互联网软件的开发、测试和发布,软件工程已经形成了一套标准流程,把工作流程分为以下几个阶段 CI/CD介绍 持续集成(Continuous integration,简称CI) 持续集成指的是,频繁地(一天多次)将代码集成到主干。将软件个人研发的部分向软件整体部分交付,频繁进行集成以便更快地发 阅读全文
posted @ 2022-12-29 23:38 暄总-tester 阅读(266) 评论(0) 推荐(0) 编辑
摘要:版本管理 为什么要对代码做版本管理 多人协作 历史版本回溯:回滚到特定阶段,恢复误删除的文件 什么是版本管理 版本管理就是管理更新的历史记录 版本管理发展历史 在Git出现以前,人们普遍采用Subversion(svn)等集中型版本管理系统,而现在Git已经成为了主流 版本管理分类 以Subvers 阅读全文
posted @ 2022-12-29 23:23 暄总-tester 阅读(60) 评论(0) 推荐(0) 编辑
摘要:HTTP协议无状态特性 什么是一次会话 用户打开浏览器访问某个网站, 在这个网站上浏览任意页面, 访问完成后将浏览器关闭的过程称为是一次会话 HTTP协议是无状态的协议,带来的问题 一旦数据交换完毕,客户端与服务器的连接就会关闭,再次交换数据需要建立新的连接,这就意味着服务器无法从连接上跟踪会话 也 阅读全文
posted @ 2022-12-29 23:00 暄总-tester 阅读(77) 评论(0) 推荐(0) 编辑
摘要:配置文件 配置文件是记录可能会有改动的配置项目的文件 提取配置文件的目的是为了使代码更加灵活,对可能经常变动的地方修改更加方便,所以使用配置文件读取 配置文件的应用场景:邮件配置信息、服务器地址信息 常用的配置文件格式 conf配置文件语法 括号[]内为section,紧接着是以key-value的 阅读全文
posted @ 2022-12-29 22:46 暄总-tester 阅读(89) 评论(0) 推荐(0) 编辑
摘要:为什么要发送邮件 自动化测试生成了测试报告文件,无法通知相关人员 目标:每次Selenium自动化测试代码运行完毕后,通过自动发送邮件方式告知相关人员具体测试结果信息。 Python发送邮件的库 smtplib:以前较为常用 smtplib需要设置发件人邮箱中的SMTP服务器,一些主流的邮箱的服务器 阅读全文
posted @ 2022-12-29 22:24 暄总-tester 阅读(114) 评论(0) 推荐(0) 编辑
摘要:把截图加入测试结果报告文件里 目标:断言失败时,生成截图文件,并该截图文件出现在最后的测试结果报告(html格式)里 步骤: 第一步:在case_action里修改截图后记录的日志 日志级别必须是:error 日志信息格式是:screenshot:截图文件路径 def screenshot(self 阅读全文
posted @ 2022-12-29 22:13 暄总-tester 阅读(140) 评论(0) 推荐(0) 编辑
摘要:日志的概念 日志是记录系统运行过程中各种重要信息的文件,在系统运行过程中由各进程创建并记录 日志的作用 记录系统的运行过程及异常信息 调试 定位错误 数据分析 运行日志 运行日志的记录包括: (1)启动成功或失败 (2)定位成功或失败 (3)操作成功或失败 (4)检查成功或失败 (5)资源加载失败 阅读全文
posted @ 2022-12-27 19:53 暄总-tester 阅读(183) 评论(0) 推荐(0) 编辑
摘要:失败截图 目标:断言失败时,截取当前被测系统界面图片,保存下来,以备后续分析问题时来使用。 failureException变量:unittest框架里定义一个TestCase类里的固定名称的成员变量,代表断言失败抛出的异常类的类名,默认这个变量的值是AssertionError,改写这个类,在失败 阅读全文
posted @ 2022-12-27 19:17 暄总-tester 阅读(111) 评论(0) 推荐(0) 编辑
摘要:模块化设计 模块化用来分隔,组织和打包软件 每个模块完成一个特定的子功能,所有的模块按某种方法组装起来,成为一个整体,完成整个系统所要的功能 在系统结构中,模块是可组合、分解和更换的单元 模块化是一种处理复杂系统分解成为更好的可管理的方式 它可以通过在不同组件设定不同的功能,把一个问题分解成多个小的 阅读全文
posted @ 2022-12-27 18:51 暄总-tester 阅读(57) 评论(0) 推荐(0) 编辑
摘要:自动化测试模型 线性测试 通过录制或编写脚本,一个脚本完成一个场景,通过对脚本的回放进行自动化测试 模块化驱动测试 将脚本中重复可复用的部分拿出来写成一个公共的模块,需要的时候就调用它,可以提高测试人员编写脚本的效率 数据驱动测试 数据驱动应该是自动化的一个进步;从它的本意来讲,数据的改变(更新)驱 阅读全文
posted @ 2022-12-27 16:59 暄总-tester 阅读(36) 评论(0) 推荐(0) 编辑
摘要:提取元素定位概述 元素定位和元素操作都在页面对象里,如果页面元素较多,页面对象也较为复杂,建议把元素定位分离出来 提取元素定位步骤 创建元素定位模块 新建python包:elementlocator elementlocator包里新建文件loginlocator.py 实现元素定位模块里页面中各个 阅读全文
posted @ 2022-12-27 16:56 暄总-tester 阅读(79) 评论(0) 推荐(0) 编辑
摘要:代码分层原因 公司小:一个人负责所有工作 → 业务简单,代码量少,单文件 公司大:分多个部门,分工协作 → 业务复杂,代码量大,多文件 PageObject模式 引入PageObject的原因 测试用例存在大量元素定位和操作细节,而UI会经常变动 希望提升自动化测试代码的复用性和维护性 PageOb 阅读全文
posted @ 2022-12-27 16:48 暄总-tester 阅读(64) 评论(0) 推荐(0) 编辑
摘要:断言静态文本 元素里的静态文本:就是指开始和结束标记之间的文本 例如: 文本 定位到元素:一般是双标记的元素,目标文本位于两个<>之间 示例:匿名用户 然后获取元素对象的text属性值 变量=元素.text 注意:数据类型是str类型 最后使用assertEqual来检查它等于预期值,也可以使用as 阅读全文
posted @ 2022-12-27 15:28 暄总-tester 阅读(215) 评论(0) 推荐(0) 编辑
摘要:集成unittest原因 原来的demoxxxx.py使用瀑布模型(线性模式)进行代码编写,复用性差、代码冗余、维护成本较高 unittest 是Python语言自带的单元测试框架,做功能自动化和接口测试时也都可以使用这样的框架来管理代码 unittest的主要作用有 更方便管理测试用例实现代码 提 阅读全文
posted @ 2022-12-27 14:11 暄总-tester 阅读(42) 评论(0) 推荐(0) 编辑
摘要:常见的驱动模式 数据驱动测试:把测试数据从测试代码里分离出来,也称为"表驱动测试"或"参数化测试" 关键字驱动测试:把业务逻辑代码块封装为"关键字",本质就是函数或方法 混合驱动测试=数据驱动测试+关键字驱动测试 行为驱动测试:用自然语言来实现测试用例内容 为什么要做数据驱动测试 测试数据有多组,代 阅读全文
posted @ 2022-12-27 13:38 暄总-tester 阅读(222) 评论(0) 推荐(0) 编辑
摘要:批量运行 为什么要批量运行? 测试用例数量庞大,需要一次运行,查看所有用例的运行结果。 什么是测试套件和测试运行器? TestSuite(测试套件)是为了测试执行而分组的测试用例集合。 TestRunner(测试运行器)用于运行测试套件里所有用例,生成报告。 怎么批量运行? 批量运行步骤 创建测试套 阅读全文
posted @ 2022-12-26 18:12 暄总-tester 阅读(402) 评论(0) 推荐(0) 编辑
摘要:unittest框架里常用的断言方法:都在TestCase类里定义 阅读全文
posted @ 2022-12-26 16:44 暄总-tester 阅读(33) 评论(0) 推荐(0) 编辑
摘要:Fixture(测试固件) Fixture(测试固件、也叫作测试夹具),书写在TestCase代码中的代码结构,用于前期初始化准备和后期清理收尾工作 本质就是一些名称固定的方法 测试固件分类 方法级别 是普通方法,包含在每个测试方法执行前后都会执行的工作内容 类级别 是类方法,用@classmeth 阅读全文
posted @ 2022-12-26 16:42 暄总-tester 阅读(61) 评论(0) 推荐(0) 编辑
摘要:TestCase(测试用例) # 导入unittest包 import unittest # 测试类(名称自定义)只要继承unittest模块中TestCase类即可 class MyTestCase(unittest.TestCase): # 书写测试方法,即用例代码 # 一个测试用例类里至少要有 阅读全文
posted @ 2022-12-26 15:22 暄总-tester 阅读(127) 评论(0) 推荐(0) 编辑
摘要:Unittest UnitTest是python自带的一个单元测试框架,用它来做单元测试 对于测试来说,unittest框架的作用是自动化脚本(用例代码)执行框架,使用unittest框架来管理运行多个测试用例 在Python语言中应用最广泛的单元测试框架是unittest和pytest,unitt 阅读全文
posted @ 2022-12-26 15:09 暄总-tester 阅读(39) 评论(0) 推荐(0) 编辑
摘要:执行JavaScript JavaScript(简称js)是运行在客户端(浏览器)和服务器端的脚本语言,允许将静态网页转换为交互式网页。 可以通过Selenium执行js,这使selenium拥有更为强大的能力。 执行JavaScript应用场景 直接使用js操作页面,能解决很多click()或se 阅读全文
posted @ 2022-12-26 14:56 暄总-tester 阅读(73) 评论(0) 推荐(0) 编辑
摘要:等待 Selenium测试中为什么需要等待? 在UI自动化测试中,有时会遇到运行环境不稳定、网络慢等情况,因为程序运行太快或者页面加载太慢而引起运行不稳定 等待的设置是保证脚本稳定有效运行的一个非常重要的手段 三种等待方式 time.sleep(固定等待、强制等待) :等待固定的时间,是最简单但是最 阅读全文
posted @ 2022-12-26 14:35 暄总-tester 阅读(101) 评论(0) 推荐(0) 编辑
摘要:验证码简介 有些网站需要验证码通过后方可进入网页,目的很简单,就是区分是自然人访问还是计算机程序访问。 验证码:简称为captcha 一种随机生成的信息(数字、字母、汉字、图片、算术题、问答题)或者系统发送到客户终端的信息,为了防止恶意的请求行为,增加应用程序的安全性。 防止恶意攻击、盗取信息。 验 阅读全文
posted @ 2022-12-17 12:12 暄总-tester 阅读(643) 评论(0) 推荐(0) 编辑
摘要:为什么要截屏 截屏:就是把当前屏幕上浏览器窗口内的网页或某个特定的网页区域截图保存为图片的过程 为什么要截屏?简单地说,主要是为了保留证据。 截图帮助我们了解应用的流程,并检查它是否有相应的行为 有助于执行交叉浏览测试,因为用户需要查看执行报告 捕获失败测试的屏幕截图,方便复现Bug 何时要截屏 截 阅读全文
posted @ 2022-12-17 11:43 暄总-tester 阅读(201) 评论(0) 推荐(0) 编辑
摘要:下拉列表 HTML里的下拉列表表示方式,一般来说分为两种情况 传统下拉列表:标准的select标签下拉列表表示方式,下级是optio 组装下拉列表:非select标记,比如li、div、input、img组装而成,界面上显示的效果也是看起来像是下拉列表的样子。 传统下拉列表(标准下拉列表) 两种操作 阅读全文
posted @ 2022-12-17 11:13 暄总-tester 阅读(442) 评论(0) 推荐(0) 编辑
摘要:frame标记 frame是HTML语法里的框架,你可以在同一个浏览器窗口中显示不止一个网页。 HTML5不支持标签,HTML4支持标签 iframe标记 iframe称为"内联框架",写在body里,用于嵌入另一个网页。 <iframe src="a.htm"></iframe> <iframe 阅读全文
posted @ 2022-12-15 22:26 暄总-tester 阅读(354) 评论(0) 推荐(0) 编辑
摘要:多窗口场景 实际使用时,经常出现新浏览器窗口(或新标签页),需要切换 切换到最新窗口 切换到最新窗口的步骤: list1 = driver.window_herdles driver.swich_to.window(list1[-1]) driver.window_herdles 获取打开的所有窗口 阅读全文
posted @ 2022-12-15 22:10 暄总-tester 阅读(124) 评论(0) 推荐(0) 编辑
摘要:消息框 是指在网页里进行某些操作(点击按钮、点击超级链接等)后,在网页上一层出现弹出来的对话框,对话框里显示要提示给客户的消息。 JavaScript根据功能把它分为三类 Alert 提示框 Confirm 确认框 Prompt 输入框 selenium中把它们统称为Alert 消息框的特点 因为并 阅读全文
posted @ 2022-12-15 21:55 暄总-tester 阅读(129) 评论(0) 推荐(0) 编辑
摘要:文件上传 文件上传,如果按照手工方式操作,需要操作windows对话框,selenium默认只能操作浏览器里的网页,不能对windows对话框操作 标准文件上传 selenium针对file类型的input标记封装了现成的文件上传操作 标准文件上传的浏览、选择文件或上传按钮是文件型按钮: <inpu 阅读全文
posted @ 2022-12-15 21:02 暄总-tester 阅读(776) 评论(0) 推荐(0) 编辑
摘要:模拟鼠标操作 在实际场景中,会有单击、长时间单击、双击、右击、拖放、移动等鼠标操作,或在当前光标位置的按键输入或鼠标操作。 selenium提供了名为ActionChains的类来处理这些操作,我们一般翻译为“操作链”或“动作链”。 导入ActionChains类 from selenium.web 阅读全文
posted @ 2022-12-13 00:23 暄总-tester 阅读(483) 评论(0) 推荐(0) 编辑
摘要:键盘操作概述 自动化测试的本质使用程序运行代替对于网页的人工操作。 用户在网页上操作时,可能会按下键盘上的各种按键。 比如: 输入登录账号信息后,直接在文本框里按下键盘上的回车键,也可以像点击“立即登陆”按钮一样,把账号数据提交给后台服务器。 Keys类 selenium提供了完整的模拟键盘操作事件 阅读全文
posted @ 2022-12-13 00:19 暄总-tester 阅读(382) 评论(0) 推荐(0) 编辑
摘要:文本框和文本域 点击: click() 清空: clear() 输入: send_keys("数据") 保留原内容,追加输入 文本域输入换行时使用转义字符\n来表示 获得属性值 get_attribute("html里的标记属性名") 最常使用的属性名有"value",代表当前文本框或文本域里的当前 阅读全文
posted @ 2022-12-12 23:49 暄总-tester 阅读(163) 评论(0) 推荐(0) 编辑
摘要:浏览器基本操作 Selenium WebDriver提供各种有用的方法来控制浏览器 常见的浏览器基本操作分类: 浏览器导航操作 调整浏览器窗口大小操作 获取窗口里网页信息 浏览器导航操作 """ 打开留言板页,等待3秒 点击"高级搜索",等待3秒 后退,等待3秒 前进,等待3秒 地址栏输入登录页的网 阅读全文
posted @ 2022-12-12 23:39 暄总-tester 阅读(104) 评论(0) 推荐(0) 编辑
摘要:find_element方法 查找一个元素用find_element方法,返回一个webelement页面元素对象。 """ 打开首页,关键字文本框反复输入,搜索后再次输入 """ from selenium import webdriver from time import sleep from 阅读全文
posted @ 2022-12-11 21:57 暄总-tester 阅读(95) 评论(0) 推荐(0) 编辑
摘要:CSS定位 CSS是英文“Cascading Style Sheets"的缩写,是层叠样式表。 CSS是一种用来表现HTML或XML等文件样式的计算机语言 CSS为HTML标记语言提供了一种样式描述,它定义了其中元素的显示方式。例如字体、颜色、位置等,被用于描述网页上的信息格式化和显示方式 样式规则 阅读全文
posted @ 2022-12-11 21:48 暄总-tester 阅读(96) 评论(0) 推荐(0) 编辑
摘要:XPath XPath全称是XML PATH(XML路径语言),是在XML文档里使用路径表达式来描述目标节点的一种技术,属于一个前端开发技术 XML 叫做可扩展标记语言 它是对HTML的扩展,所有的标记以及标记的属性都可以自己定义 XML的设计宗旨是传输数据,而不是显示数据,所以XML标间没有被预定 阅读全文
posted @ 2022-12-11 21:40 暄总-tester 阅读(132) 评论(0) 推荐(0) 编辑
摘要:CLASS_NAME定位 html语法里class属性 class属性规定元素的类名(classname),如需为一个元素规定多个类,用空格分隔类名 html里的类一般是用于统一设置控件的样式,对文字排版等比较有用 <标记 class='类名1 类名2'> WebDriver提供的CLASS_NAM 阅读全文
posted @ 2022-12-08 20:59 暄总-tester 阅读(142) 评论(0) 推荐(0) 编辑
摘要:LINK_TEXT 超级链接:标记名称是a的页面元素,点击后跳转到其它网页 文本型超级链接:是指a的开始标记与结束标记之间有文本内容的超级链接 <a href='flow.php'>查看购物车</a> WebDriver提供LINK_TEXT定位专门用于识别文本型超级链接,find_element方 阅读全文
posted @ 2022-12-08 20:55 暄总-tester 阅读(332) 评论(0) 推荐(0) 编辑
摘要:NAME定位 name属性指定元素的名称,在当前的HTML文档中可以不唯一 <input type='text' name='username' size=25> <input type='password' name='password' size=25> WebDriver提供的NAME定位就是 阅读全文
posted @ 2022-12-08 20:53 暄总-tester 阅读(106) 评论(0) 推荐(0) 编辑
摘要:ID定位 HTML语法中规定id属性在当前的HTML文档中必须是唯一的 <input type='text' id='username' size=25> <input type='password' id='password' size=25> WebDriver提供的ID定位就是通过元素的id属 阅读全文
posted @ 2022-12-08 20:49 暄总-tester 阅读(156) 评论(0) 推荐(0) 编辑
摘要:Web自动化测试核心问题 Web应用程序的功能自动化(也称为UI自动化)测试的本质就是使用工具代替人工进行界面操作 核心问题: 如何识别(也叫做定位)要操作的页面元素 识别后如何对页面元素进行操作 操作后,界面应该有什么变化,如何检查变化 主要:定位、操作、检查 定位元素方法 准确无误的找到页面上的 阅读全文
posted @ 2022-12-08 20:47 暄总-tester 阅读(62) 评论(0) 推荐(0) 编辑
摘要:Selenium WebDriver 从selenium模块里导入子模块webdriver from selenium import webdriver 调用webdriver模块里浏览器名称的构造方法,构建一个驱动程序对象实例,通过实例对象启动浏览器 # 语法: 变量 = webdriver.浏览 阅读全文
posted @ 2022-12-08 20:43 暄总-tester 阅读(67) 评论(0) 推荐(0) 编辑
摘要:什么是功能测试和黑盒测试 Functional testing(功能测试),也称为behavioral testing(行为测试)或UI层测试 根据产品特性、操作描述和用户方案,测试一个产品的特性和可操作行为以确定它们满足设计需求。是对产品的各功能进行验证,根据功能测试用例,逐项测试,检查产品是否达 阅读全文
posted @ 2022-12-08 20:34 暄总-tester 阅读(144) 评论(0) 推荐(0) 编辑
摘要:服务器(腾讯云、阿里云、百度云) 服务器部署、服务器搭建 操作系统(Linux -- Centos、ubuntu) 常用命令、环境部署、查看日志 docker容器 docker部署、测试环境部署 禅道 项目管理、产品管理、测试管理 Git/SVN 版本管理、代码管理、文档管理 被测服务器搭建 搭建测 阅读全文
posted @ 2022-12-06 20:02 暄总-tester 阅读(102) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示