python
文章平均质量分 79
hogwarts_beibei
这个作者很懒,什么都没留下…
展开
-
只懂黑盒测试也能学会的代码覆盖率及精准化测试
测试覆盖率是对测试完成程度的度量。它通常依据某种覆盖准则来对测试用例执行情况进行衡量,以判断测试执行得是否充分。——出自《计算机科学技术名词 》第三版今天文章中我们给大家介绍覆盖率统计及覆盖率分析。在10月13日20:00,资深测试开发架构师思寒将光临直播间手把手教大家如何搞定精准化测试!温馨提示:你以为代码覆盖率与精准化测试知识与黑盒测试无缘?不,你只是没遇到思寒讲的这节课。常见覆盖率统计工具emma cobertura jacocoemma 与 cobertura 是为单元测原创 2022-04-24 14:07:45 · 148 阅读 · 0 评论 -
pytest 自动化测试框架(二)
pytest 自动化测试框架(二)原创 2022-04-19 14:48:32 · 254 阅读 · 0 评论 -
uiautomator2 自动化测试工具使用
Google 官方提供了一个 Android 自动化测试工具(Java 库),基于 Accessibility 服务,功能很强,可以对第三方 App 进行测试,获取屏幕上任意一个 App 的任意一个控件属性,并对其进行任意操作,但有两个缺点:1.测试脚本只能使用 Java 语言;2.测试脚本要打包成 jar 或者 apk 包上传到设备上才能运行;实际工作中,我们希望测试逻辑能够用 Python 编写,能够在电脑上运行的时候就控制手机。所以基于这个目的开发了 python-uiautomator2 自.原创 2022-04-19 14:47:19 · 674 阅读 · 0 评论 -
仅需4步,即可用 Docker搭建测试用例平台 TestLink
本文节选自霍格沃兹测试学院内部教材Testlink 是基于 WEB 的测试用例管理系统,主要功能是:测试项目管理、产品需求管理、测试用例管理、测试计划管理、测试用例的创建、管理和执行,并且还提供了统计功能。Testlink 服务存储数据依赖数据库服务,所以需要先搭建一个数据库。同时数据库和 Testlink 服务之间访问需要网络互相通畅,也需要建立一个容器网络。可以访问 Testlink 镜像的介绍网站:https://hub.docker.com/r/bitnami/testlink/ 查看更多信息原创 2022-04-19 14:42:19 · 180 阅读 · 0 评论 -
初窥 Pytest 测试框架,基础薄弱也能轻松 hold 住
pytest 是一个成熟的全功能Python测试工具,可以帮助您编写更好的程序。它与 python 自带的 unittest 测试框架类似,但 pytest 使用起来更简洁和高效,并且兼容 unittest 框架。pytest 能够支持简单的单元测试和复杂的功能测试,pytest 本身支持单元测试,可以结合 requests 实现接口测试,结合selenium、appium 实现自动化功能测试,使用 pytest 结合 allure 集成到 Jenkins 中可以实现持续集成。工作中一般会使用持续集成来原创 2022-04-19 14:41:36 · 74 阅读 · 0 评论 -
利用 pytest 玩转数据驱动测试框架
pytest架构是什么?首先,来看一个 pytest 的例子:def test_a(): print(123)collected 1 itemtest_a.py . [100%]============ 1 passed in 0.02s =================原创 2022-04-19 14:40:46 · 254 阅读 · 0 评论 -
在Docker 上搭建持续集成平台 Jenkins
jenkins 是开源 CI&CD 软件领导者,提供持续集成和持续交付服务,有超过1000个插件来支持构建、部署、自动化,满足任何项目的需要。可以访问 Jenkins 镜像的介绍网站:https://hub.docker.com/r/jenkins/jenkins/ 查看更多信息。docker pull jenkins/jenkinsdocker run -d --name=myjenkins -p 8080:8080 jenkins/jenkins通过此种方式启动的 Jenkins原创 2022-04-19 14:38:19 · 59 阅读 · 0 评论 -
应用打包还是测试团队老大难问题?
Docker是一个开源的应用容器引擎,基于 Go 语言开发,Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的系统。Docker 是世界领先的软件容器平台,Docker 官方的口号是”调试你的应用,而不是调试环境“。在进行多人协作开发时,开发者可以使用 Docker 来消除所谓“我这里运行是好的”(works on my machine)问题,运维人员使用 Docker 来并行的运行和管理应用来获得更优计算密度,基于各自独立的容器,不会因为环境原因导致应用原创 2022-04-19 14:37:28 · 120 阅读 · 0 评论 -
录制你的第一个web 自动化测试用例
Web应用程序的验收测试常常涉及一些手工任务,例如打开一个浏览器,并执行一个测试用例中所描述的操作。但是手工执行的任务容易出现操作人员人为的错误,花费的时间成本也比较多。因此,将这些任务自动化,就可以消除人为因素。Selenium可以帮助我们自动完成验收测试,通过构建更严格的测试,从而使软件更为可靠也更易于维护。Selenium 测试框架及用例编写Selenium是什么?Selenium 是用于测试 Web 应用程序用户界面 (UI) 的常用框架。它是一款用于运行端到端功能测试的超强工具。您可以使用多原创 2022-04-19 14:36:36 · 212 阅读 · 0 评论 -
技术分享 | SeleniumIDE用例录制
1、录制回放方式的稳定性和可靠性有限2、只支持 Firefox、Chrome3、对于复杂的页面逻辑其处理能力有限环境准备Chrome 插件:https://chrome.google.com/webstore/detail/selenium-ide/mooikfkahbdckldjjndioackbalphokdFirefox 插件:https://addons.mozilla.org/en-US/firefox/addon/selenium-ide/安装完成后,通过在浏览器的菜..原创 2022-04-19 14:35:16 · 158 阅读 · 0 评论 -
环境问题还是测试的老大难?
在实际的工作中,绝大部分公司都至少有3个以上的环境,供测试与研发人员使用。测试人员不可能为每个环境都准备一个自动化测试的脚本,这样的维护成本太过庞大。所以就需要做到一套脚本,可以在各个环境上面运行。首先在上一节提到过的字典结构体的基础上进行改造(没看过的戳这里 干货 | 实战演练基于加密接口测试测试用例设计),将url从一个写死的ip地址改为一个域名。 req_data={ "schema": "http", "method": "get", .原创 2022-04-18 17:21:32 · 185 阅读 · 0 评论 -
移动端App自动化之App控件定位
客户端的页面通过 XML 来实现 UI 的布局,页面的 UI 布局作为一个树形结构,而树叶被定义为节点。这里的节点也就对应了我们要定位的元素,节点的上级节点,定义了元素的布局结构。在 XML 布局中可以使用 XPath 进行节点的定位。App的布局结构从上面这张图中可以看到最左侧是应用的页面的展示,中间部分展示了这个页面的树形结构的 XML 代码。其中包含的内容为:节点 node节点属性:包括 clickable(是否可点击)、content-desc(内容)、resource-id(元素 id原创 2022-04-18 17:20:02 · 316 阅读 · 0 评论 -
精准化测试原理简介与实践探索
小时候大家应该都玩过一个游戏,游戏很简单,就是找不同,在规定时间内两幅图直接的差异点找到就算赢,越快越好,就像下面这样:上面这个不同点想找很简单,那么下面这样的呢?这个,确实有的人会说"我可以!" 。比如在综艺节目"最强大脑"中,这群"变态"的非人类确实可以反正我不行,我也不信你们看到文章这里的人可以~我只有最菜大脑理论上,我们全面的测试覆盖,肯定就就可以保证,那么我们先看下下面的代码:这是一份涉及订单状态的各种枚举,每一个状态的背后都有其业务逻辑,甚至还有交叉,假若按照笛卡尔积或者正交的方式来进原创 2022-04-18 17:19:14 · 471 阅读 · 0 评论 -
背熟这些 Docker 命令,面试再也不怕啦~
我们下载 Docker 镜像的时候,默认会访问 Docker 网站,而 Docker 网站是在国外部署的,距离比较远下载速度特别慢。我们可以通过设置加速器的方式来加速 Docker 镜像下载的速度。下面将描述一下使用加速器的步骤:1.我们这里选择的是阿里云提供的Docker 镜像加速器服务,首先访问阿里云的镜像仓库:https://cr.console.aliyun.com/(如果没有阿里云账号则需要注册)2.选择“镜像加速器”3.根据个人的系统平台,选择运行 Docker 的 OS,并按照操作文档的原创 2022-04-18 17:18:17 · 266 阅读 · 0 评论 -
解决 App 自动化测试的常见痛点(弹框及首页启动加载完成判断处理)
App 自动化测试中有些常见痛点问题,如果框架不能很好的处理,就可能出现元素定位超时找不到的情况,自动化也就被打断终止了。很容易打消做自动化的热情,导致从入门到放弃。比如下面的两个问题:一是 App 启动加载时间较久(可能 App 本身加载慢,可能移动设备本身加载应用速度慢,也可能首页广告时间较长)。另一个是各种弹框的出现,广告弹框,升级弹框,评价弹框等。在框架中如果不能处理好上面的情况,以雪球 App 出现的几种弹框举例:弹框一:弹框二:弹框三:弹框的影响范围弹框对我们自动化的影.原创 2022-04-18 17:17:31 · 411 阅读 · 0 评论 -
读懂 Appium 日志,让测试效率翻倍
Appium 服务器运行时会产生很多日志,但是很多人并不了解其中的意义,也无法掌握有用的信息。本文将详细解读如何读懂 Appium 日志,并让你的测试效率翻倍。日志第一行显示了 Appium 版本和运行地址。如果你在 Appium 上添加了参数,他们会在日志中展示,如果添加了 defaultCapabilities,日志也会显示出来。对于自动化测试来说,这个信息很重要,因为不同的 Appium 版本有不同的功能和问题,必须要知道自己的 Appium 版本。为了自动化测试跑起来,session 要做.原创 2022-04-18 17:16:23 · 216 阅读 · 0 评论 -
谁懂这篇文,玩游戏还会卡顿?
玩游戏的时候最怕的就是卡顿。排位赛的紧急关头,明明马上就能上一段位,却因为卡顿导致给对方送人头。还把对手送上了王者。引起队友骂声一片。作为测试工程师的你,可以忍?卡顿测试也是专项测试里的一种,更多精彩测试内容,可下方关注公众号Android系统每隔16ms会发出VSYNC信号重绘我们的界面(Activity)。App需要在16ms内完成下一次要刷新的界面的相关运算,以便界面刷新更新,如果无法在16ms内完成运算,就会发生卡顿,影响用户体验。下面的这些内容可能会造成卡顿:内存问题:内存抖动、ful.原创 2022-04-18 17:15:05 · 1760 阅读 · 4 评论 -
app自动化测试之Andriod微信小程序的自动化测试
随着微信小程序的功能和生态日益完善,很多公司的小程序项目页面结构越来越多,业务逻辑也越来越复杂。如何做好小程序的自动化测试就成为测试同学普遍面临的一大痛点难题。微信小程序小程序内嵌于微信内部,页面包含 Native 原生元素和 Web 元素,相当于混合应用。并且,小程序 Web 部分是基于腾讯的 X5 内核开发的,也是特殊的 WebView。那么,对微信小程序进行自动化测试,包括操作原生应用、WebView、基于微信官方自动化 SDK。WebView页面元素获取使用元素定位工具:weditor原创 2022-04-18 17:13:16 · 295 阅读 · 0 评论 -
技术分享 | Web自动化之Selenium安装
Web 应用程序的验收测试常常涉及一些手工任务,例如打开一个浏览器,并执行一个测试用例中所描述的操作。但是手工执行的任务容易出现人为的错误,也比较费时间。因此,将这些任务自动化,就可以消除人为因素。Selenium 可以帮助我们自动化完成验收测试,通过构建更严格的测试,从而使软件更为可靠也更易于维护。Selenium 支持 Web 浏览器的自动化,它提供一套测试函数,用于支持 Web 自动化测试。函数非常灵活,能够完成界面元素定位、窗口跳转、结果比较等功能。支持多种浏览器、多种编程语言(Java、C#、P原创 2022-04-18 17:12:03 · 282 阅读 · 0 评论 -
APP自动化Android特殊控件Toast识别
APP自动化Android特殊控件Toast识别原创 2022-04-15 11:49:30 · 94 阅读 · 0 评论 -
app自动化之如何参数化用例
app自动化之如何参数化用例原创 2022-04-15 11:29:14 · 100 阅读 · 0 评论 -
app自动化测试之Andriod WebView如何测试
app自动化测试之Andriod WebView如何测试原创 2022-04-15 11:27:12 · 231 阅读 · 0 评论 -
app自动化测试之Appium WebView 技术原理
app自动化测试之Appium WebView 技术原理原创 2022-04-15 11:13:36 · 258 阅读 · 0 评论 -
app自动化测试之Appium 原理 与 JsonWP 协议分析
app自动化测试之Appium 原理 与 JsonWP 协议分析原创 2022-04-15 11:11:49 · 172 阅读 · 0 评论 -
一道大厂测试开发面试真题,你需要几分钟解答?
'原文链接又到一年年底!年底其实是跳槽换坑的绝佳时机,毕竟可以「年前面试,年后入职」,而且面试越早,好坑位较多,可选择的余地也较大。对于做好准备的测试同学来说,是绝对要鼓励多发简历,多找找面试机会的。哪怕为接下来的金三银四(人才流动高峰)积累点面试经验,都是极好的。最近就有位测试小伙伴@ZZ去挑战了某知名互联网企业的高薪测试开发岗位。虽然没有面试成功,但也是收(shen)获(shou)满(ci)满(ji)。这位同学的一些反馈也在霍格沃兹测试学院的「测试开发技术学习交流群」里引发了讨论。下面就来一起看看吧!原创 2022-04-15 11:04:59 · 159 阅读 · 0 评论 -
BAT大厂都在用的Docker。学会这三招,面试、工作轻松hold住
BAT大厂都在用的Docker。学会这三招,面试、工作轻松hold住原创 2022-04-15 10:56:12 · 1119 阅读 · 1 评论 -
app自动化测试之Appium 源码修改定制分析
Appium 是由 Node.js 来实现的 HTTP 服务,它并不是一套全新的框架,而是将现有的优秀的框架进行了集成,在 Selenium WebDriver 协议(JsonWireProtocol/Restful web service)的基础上增加了移动端的支持,使 Appium 满足多方面的需求。官方提供更详细的 Appium 结构说明:Appium Package Structure - AppiumAppium 框架结构Appium 是由多个子项目构成的,github 访问如下图:原创 2022-04-14 18:29:30 · 205 阅读 · 0 评论 -
app自动化测试之Appium 源码分析
Appium 是由 Node.js 来实现的 HTTP 服务,它并不是一套全新的框架,而是将现有的优秀的框架进行了集成,在 Selenium WebDriver 协议(JsonWireProtocol/Restful web service)的基础上增加了移动端的支持,使 Appium 满足多方面的需求。官方提供更详细的 Appium 结构说明:Appium Package Structure - AppiumAppium 原理不同平台(如 Android,iOS)采用不同的运行和交互方式。App原创 2022-04-14 18:27:42 · 166 阅读 · 0 评论 -
app自动化测试之Appium问题分析及定位
使用 Appium 进行测试时,会产生大量日志,一旦运行过程中遇到报错,可以通过 Appium 服务端的日志以及客户端的日志分析排查问题。Appium Server日志-开启服务通过命令行的方式启动 Appium Server,下面来分析一下启动日志,日志第一行显示了 Appium 版本信息和服务在本地的运行地址。$ appium -g appium.log[Appium] Welcome to Appium v1.8.0-beta3 (REV \ 40e40975ebd...原创 2022-04-14 18:21:03 · 418 阅读 · 0 评论 -
app自动化测试之Capability 使用进阶
Capability 是一组键值对的集合(比如:“platformName”: “Android”)。Capability 主要用于通知 Appium 服务端建立 Session 需要的信息。客户端使用特定语言生成 Capabilities,最终会以 JSON 对象的形式发送给 Appium 服务端。Appium底层架构823×396 76.8 KB比如下面的例子展示了几个重要的 capabilities:{ "platformName": "Android", "pl原创 2022-04-14 18:19:04 · 110 阅读 · 0 评论 -
app自动化测试之模拟器控制
测试时需要用到测试设备,通常测试人员会选择使用模拟器进行自动化调试。模拟器分为原生模拟器与第三方模拟器。我们今天介绍的就是原生模拟器是 Android SDK 中自带的模拟器,可以通过 Android Studio 工具创建模拟器。创建/管理 原生模拟器Android 虚拟设备(AVD)是一种配置,它可以定义 Android 模拟器例如:Android 手机、平板电脑、Wear OS、Android 电视或车载设备的特征。AVD 管理器是一个可以从 Android Studio 启动的界面,它可以创原创 2022-04-14 18:18:10 · 181 阅读 · 0 评论 -
app自动化测试之设备交互API详解
Appium 提供了很多系统操作,在测试 APP 过程中会有一些特殊场景,比如来电话、短信,横竖屏切换,安装/卸载 APP,手机上的键盘操作,录屏等功能。下面介绍几个常用的设备交互 API。更多用法参见官网:Introduction - Appium模拟电话/短信用下面的命令模拟 GSM 电话和短信,注意:只能在模拟器上使用!self.driver.make_gsm_call("5551234567", GsmCallActions.CALL);self.driver.send_sms(原创 2022-04-14 18:17:29 · 121 阅读 · 0 评论 -
接口测试必备技能-常见接口协议解析
服务与服务之间传递数据包,往往会因为不同的应用场景,使用不同的通讯协议进行传递。比如网站的访问,常常会使用 HTTP 协议进行传递,文件传输使用 FTP,邮件传递使用 SMTP。上述的三种类型的协议都处于网络模型中的应用层。除了应用层的常用协议之外,对于传输层的 TCP、UDP 协议,以及 Restful 架构风格、RPC 协议等等基础网络知识要有一定的了解和认知。网络协议介绍在了解具体的协议之前,需要先了解 OSI 七层模型、TCP/IP 四层模型、五层体系结构这三种不同的网络模型。网络协议模型原创 2022-04-14 18:16:26 · 549 阅读 · 0 评论 -
移动端App自动化之触屏操作自动化
工作中我们经常需要对应用的页面进行手势操作,比如滑动、长按、拖动等,AppiumDriver 为我们提供一个模拟手势操作的辅助类 TouchAction,可以通过它对手机屏幕进行手势操作。具体用法参见链接:chromedriver下载地址与webview自动化关键代码1导入TouchActionfrom appium.webdriver.common.touch_action import TouchAction常用的手势操作TouchAction 提供的常用的手势操作有如下操作:.转载 2022-04-14 18:15:05 · 100 阅读 · 0 评论 -
技术分享 | Spring Boot 异常处理
Java 异常类 首先让我们简单了解或重新学习下 Java 的异常机制。Java 内部的异常类 Throwable 包括了 Exception 和 Error 两大类,所有的异常类都是 Object 对象。Error 是不可捕捉的异常,通俗的说就是由于 Java 内部 JVM 引起的不可预见的异常, Java 虚拟机会选择终止线程。如 OutOfMemoryError ,就是 Java 虚拟机运行过程中出现内存资源错误抛出的。Excetpion 异常是程序本身引起的,它又分为运行时异常 Runt原创 2022-04-14 18:13:43 · 825 阅读 · 0 评论 -
技术分享 | Spring Boot 集成 Swagger
Swagger UI 允许任何人(无论您是开发团队还是最终用户)都可以可视化 API 资源并与之交互,而无需任何实现逻辑。它是根据您的 OpenAPI(以前称为 Swagger)规范自动生成的,具有可视化文档,可简化后端实现和客户端使用。为什么使用Swagger跨语言性,支持 40 多种语言,Swagger 已经慢慢演变成了 OpenAPI 规范; Swagger UI 呈现出来的是一份可交互式的 API 文档,我们可以直接在文档页面尝试 API 的调用,省去了准备复杂的调用参数的过程; 对于某原创 2022-04-14 18:12:53 · 668 阅读 · 0 评论 -
技术分享 | 测试平台开发-前端开发之Vue.js 框架
Vue.js 是一套用于构建用户界面的渐进式框架,在目前的前端开放中比较流行的前端框架。Vue 被设计成自底向上的逐层应用。Vue 的核心库只关注视图层,不仅易于上手,还便于与第三方库或已有项目整合。但是学习 Vue.js 需要一定的 HTML、CSS、和 JavaScript 基础,所以本章节将不对这些基础内容进行讲解。Vue的组件化开发目前的前端开发中组件化开发成为了潮流,而所谓的组件化开发就是把页面拆分成多个组件,最后将每一个组件进行罗列,形成我们看到的网页。例如:百度的首页,可以简单的原创 2022-04-13 16:15:07 · 385 阅读 · 2 评论 -
技术分享 | 测试平台开发-前端开发之Vue.js 框架的使用
首先将 Vue.js 下载到本地,本章就以本地的 Vue.js 为例。在本地创建一个工作区即创建一个文件夹,使用 vscode 打开,将 Vue.js 放到工作区目录下。创建挂载元素首先创建一个 index.html 的文件,使用 加载 vue.js,这里的 ./vue.js 路径根据自己 Vue.js 文件位置而定。<!DOCTYPE html><html lang="en"> <head> <meta charset="UTF-8"原创 2022-04-13 16:14:02 · 179 阅读 · 0 评论 -
持续交付-Blue Ocean 应用
Blue Ocean 提供了一套可视化操作界面来帮助创建、编辑 Pipeline 任务。Blue Ocean 特性:流水线编辑器:用于创建贯穿始终的持续交付流水线,是一种直观并可视化的流水线编辑器。 流水线的可视化:对流水线的可视化表示,提高了全企业范围内持续交付过程的清晰度。 流水线的诊断:即刻定位自动化问题,无需持续扫描日志或关注多个屏幕。 个性化仪表盘:用户可以自定义仪表盘,只显示与自身相关的流水线。安装与启动 Blue OceanBlue Ocean 是 Jenkins 插件之一,原创 2022-04-13 16:13:22 · 235 阅读 · 0 评论 -
持续交付-Jenkinsfile 语法
实现 Pipeline 功能的脚本语言叫做 Jenkinsfile,由 Groovy 语言实现。Jenkinsfile 一般是放在项目根目录,随项目一起受源代码管理软件控制,无需像创建"自由风格"项目一样,每次可能需要拷贝很多设置到新项目,提供了一些直接的好处:Pipeline 上的代码审查/迭代 Pipeline 的审计跟踪 Pipeline 的唯一真实来源,可以由项目的多个成员查看和编辑 Pipeline 支持:Declarative(在 Pipeline 2.5 中引入)和 Scripted原创 2022-04-13 16:10:05 · 431 阅读 · 0 评论