暂无个人介绍
01 性能环境要考虑的要素 系统逻辑架构,即组成系统的组件、应用之间的结构、交互关系的抽象。最简单最基本的就是这三层架构。 三层逻辑结构图 - 客户层:用户请求端。 - Web层:处理客户端所有的业务请求逻辑和服务端数据。 - 数据库层:维护业务系统的数据。 - 更复杂的逻辑结构 - 逻辑架构中的任意一层,有可能是在独立的物理集群机器上,也有可能跨多个物理机
在大话测试数据(一)文章中,我提到,获取数据的第一步是获取概念上数据。这一步看起来简单,其实不是那么容易。获取概念数据和获取需求的过程是交织在一起的,事实上,它们其实是一个事儿,因为数据是需求中最重要的组成部分。 需求工程是个大话题,目前有很多种流派和实践方式来来搞定需求,但它们的思想都比较一致,那就是:不断的由粗到精的迭代(如下图)。关于需求这里不再展开,如果大家有兴趣的话,推荐两本我觉得还
![](https://ceshiren.com/uploads/default/original/3X/9/b/9bf7800ee97dd8d5d8ab97247062e7174846a166.jpeg) 测试数据在整个测试过程中扮演着极为重要的角色,但是它却像个没有星象的演员,明明至少是男二号,但总是被观众忽略。在测试过程中,我们往往在测试计划阶段就忽略了测试数据,在起先没有给测试数据的设计
![](https://ceshiren.com/uploads/default/original/3X/2/a/2a554254fc8bc1b0940a66a733efe448359a0ec3.jpeg) 上节课爱画漫画的小哥哥用漫画形式向大家展示了JMeter的进阶用法:如何搭建InfluxDB,使用更炫酷的Grafana。 看到很多小伙伴觉得看的不过瘾,在强烈的催促下,小哥哥的新文章又出
![](https://ceshiren.com/uploads/default/original/3X/3/0/3061c49d73b39d6524ffe274f626a9d574786ca7.gif) 上节课展示了JMeter的基础用法:录制回放功能,断言,聚合报告。李政道教授谈论学习方法,他表明我们可以获取很多信息。 但是,从了解到理解还有一段路要走。只有亲手练了才能变成理解,能获取
![](https://ceshiren.com/uploads/default/original/3X/5/e/5ea8dedae80fbc21593b87c72807c990c252cba0.jpeg) 接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系等。 很多系统的关联都是基于接口测试
RESTful 是一种规范,符合 RESTful 的 Api 就是 RESTful Api。简单的说就是可联网设备利用 HTTP 协议通过 GET、POST、DELETE、PUT、PATCH 来操作具有 URI 标识的服务器资源,返回统一格式的资源信息,包括 JSON、XML、CSV、ProtoBuf、其他格式。 RESTful 的核心思想是,客户端发出的数据操作指令都是"动词 + 宾语"的结
## 为什么使用Spring Boot - 简化配置,无需编写太多的 xml 配置文件,效率很高; - Spring 可以整合很多各式各样的框架,并能很好的集成; - 基于 Spring 构建,使开发者快速入门,门槛很低; - Spring Boot 可以创建独立运行的应用而不需要依赖外部组件或工具; - 内置 Tomcat 服务器,无需打成 war 包,可以直接在内置 Tomcat 中运行
本系列文章汇总了从 Appium 自动化测试从基础到框架高级实战中,所涉及到的方方面面的知识点精华内容(如下所示),希望对大家快速总结和复习有所帮助。 1.Appium 基础 1 (环境搭建和简介) 2.Appium 基础 2 (元素定位和元素常用方法) 3.Appium 基础 3 (手势操作和 uiautomator 查找元素) 4.Appium 基础 4 (显式等待) 5.Appium 基
本系列文章汇总了从 Appium 自动化测试从基础到框架高级实战中,所涉及到的方方面面的知识点精华内容(如下所示),希望对大家快速总结和复习有所帮助。 1.Appium 基础 1 (环境搭建和简介) 2.Appium 基础 2 (元素定位和元素常用方法) 3.Appium 基础 3 (手势操作和 uiautomator 查找元素) 4.Appium 基础 4 (显式等待) 5.Appium 基
测试覆盖率是对测试完成程度的度量。它通常依据某种覆盖准则来对测试用例执行情况进行衡量,以判断测试执行得是否充分 。 ——出自《 计算机科学技术名词 》第三版 今天文章中我们给大家介绍覆盖率统计及覆盖率分析。在10月13日20:00,资深测试开发架构师思寒将光临直播间手把手教大家如何搞定精准化测试! 温馨提示:你以为代码覆盖率与精准化测试知识与黑盒测试无缘?不,你只是没遇到思寒讲的这节课。
![](https://ceshiren.com/uploads/default/original/3X/f/7/f71993f19f3b4b7323fe8c89a1ba0cc56a6821c8.jpeg) 上一篇文章中介绍了rest-assured对返回结果的断言,最后说明了对于Response结果导出的需求。可查看往期文章进行查看。 ``` HTTP/1.1 200 OK Serve
TestNG 和 Junit 作为两大流行的测试框架,有哪些区别?各有哪些优缺点?该如何选择呢?这里简要总结下: ![](https://ceshiren.com/uploads/default/original/3X/7/3/731391a1eddb1e44ccb4a50bedbe0df0cbdaf138.png) ![](https://ceshiren.com/uploads/def
![](https://ceshiren.com/uploads/default/original/3X/2/5/25afa1e0917e20f13ac561eaae3bbe63318959d1.jpeg) 在上一篇文章中,我们初步探讨了 REST Assured 的应用实践,还有很多丰富的用法需要慢慢探索研究。而 REST Assured 提供的完整断言手段,是测试工程师最常用最重要的功能之
![](https://ceshiren.com/uploads/default/original/3X/2/5/25afa1e0917e20f13ac561eaae3bbe63318959d1.jpeg) 在 REST Assured 的官方 GitHub 上有这样一句简短的描述: Java DSL for easy testing of REST services 简约的 REST 服务
![](https://ceshiren.com/uploads/default/original/3X/8/e/8ec08d6040bc5e941476b19a1ee96eac63838c2e.jpeg) 上两篇文章介绍了自动遍历的测试需求、工具选择和 AppCrawler 的环境安装、启动及配置文件字段基本含义,这里将以实际案例更加细致的说明配置文件的用法和一些特殊场景的处理。 下面我
Shell 是什么呢?很多人以为的Shell就是命令行,一条条可以百度出来的命令行。而简历上你只会写熟悉Linux?今天用摩拜App给大家讲解下如何使用 Shell 去操作 Android 设备进行自动化测试。 首先我们需要准备一部手机或者一个Android模拟器。然后电脑上需要配置Android开发环境。 - 下载 Android SDK:,按照系统版本下载相应的zip包。请按照自己的系统按
![](https://ceshiren.com/uploads/default/original/3X/0/6/06250bd7e85b93784a37a6c492aa05bee2d77ef3.jpeg) SonarQube 是一个用于代码质量管理的开源平台,用于管理源代码的质量。同时 SonarQube 还对大量的持续集成工具提供了接口支持,可以很方便地在持续集成中使用 SonarQube。
## 代码分析 - IDE辅助功能:xcode、android studio - 独立的静态分析工具:findbugs、androidlint、scan-build、pmd、阿里巴巴java开发规范pmd插件 ![](https://ceshiren.com/uploads/default/original/3X/7/1/71ff88b1b42cf1b1379ff4ad12d4c8045b78
![](https://ceshiren.com/uploads/default/original/3X/6/f/6f0ef1d801813688017d309684bbc53cdb480d7e.jpeg) FPS 和丢帧率可以在一定程度上作为 APP 流畅度的一项衡量标准,本文介绍利用 adb shell dumpsys gfxinfo 命令获取软件渲染加载过程的数据,进行计算从而获取测试结果
![](https://ceshiren.com/uploads/default/original/3X/b/a/baf744a48942f64d4c03d4d50ae104e42f4f7d53.png) 为UI页面写测试用例时(比如web页面,移动端页面),测试用例会存在大量元素和操作细节。当UI变化时,测试用例也要跟着变化, PageObject 很好的解决了这个问题! 使用UI自动化测试
![](https://ceshiren.com/uploads/default/original/3X/f/d/fdb234546dd6939eb69cef72255fc9d4b580bfe6.jpeg) 软件测试技术应当贯穿整个软件开发生命周期、对软件产品(包括阶段性产品)进行验证和确认的活动过程,其核心目标是尽快尽早地发现软件产品中所存在的各种问题 bug—— 与用户需求、预先定义的不一致
排序的定义 排序,就是重新排列表中的元素,使表中的元素满足按关键字递增或递减的过程。为了査找方便,通常要求计算机中的表是按关键字有序的。 排序的确切定义如下: 算法的稳定性: 若待排序表中有两个元素 Ri 和 Rj,其对应的关键字 keyi = kcyj , 且在排序前 Ri 在 Rj 的前面。使用某一排序算法排序后,Ri 仍然在 Rj 的前面尽的前面,则称这个排序算法是稳定的。否则称排序算法是
![](https://ceshiren.com/uploads/default/original/3X/b/4/b429d24df9b7af9ec0e6d7bed79e60d247ec05d4.jpeg) - 文末获取测试开发进阶指南 - 本文适合已经掌握 Postman 基本用法的读者,即对接口相关概念有一定了解、已经会使用 Postman 进行模拟请求等基本操作。 工作环境与版本: - W
很久很久以前,Web 基本上就是文档的浏览而已,既然是浏览,作为服务器,不需要记录谁在某一段时间里都浏览了什么文档,每次请求都是一个新的 HTTP 协议,就是请求加响应,尤其是我不用记住是谁刚刚发了 HTTP 请求,每个请求对我来说都是全新的。这段时间很嗨皮。 但是随着交互式 Web 应用的兴起,像在线购物网站,需要登录的网站等等,马上就面临一个问题,那就是要管理会话,必须记住哪些人登录系统,哪
如果把测试简单分为两类,那么就是客户端测试和服务端测试。移动端的测试包括 UI 测试,兼容性测试等,服务端测试包括接口测试。接口测试检查数据的交换,传递和控制管理过程,它绕过了客户端,直接对服务端进行测试。 ![](https://ceshiren.com/uploads/default/original/3X/3/2/321de5f2e980d18ce785d8c98795b644590
批处理任务编排 初学者容易误以为容器的任务只在于部署行为--将软件在容器中部署以提供持续的服务。但其实容器也同样大量的被应用于批处理程序的运行上。比如测试行为是典型的批处理任务范畴, 它不提供持续稳定的服务, 它只是一段特定的程序,而一但这段测试程序结束后就应该销毁一切,包括执行环境和所占用的资源,容器对比于传统的虚拟机的优势也在于除了容器更加的轻量级外, 容器的创建和销毁都很方便,通过 K8S
![](https://ceshiren.com/uploads/default/original/3X/3/a/3a27dc67fde352a7c811fdea2fa192caa5364be9.png) K8S目前是业界容器编排领域的事实标准,是几乎所有云原生架构的首选。目前随着云原生架构越来越流行,测试开发人员需要掌握K8S技术栈已经成为越来越迫切的需求。 Kubernetes 开源于 2
本章节主要讲解 iOS 自动化真机配置以及在 iOS 真机执行自动化时常见问题与解决方法。 ## 真机使用的Capability 与模拟器不同,真机测试需要如下的 Capability 方式一:设置 App 路径,启动 App(自动安装 App) ``` { "app": "/Users/seveniruby/Library/Developer/Xcode/DerivedData/UI
![](https://ceshiren.com/uploads/default/original/3X/a/b/ab23a3dcb65fef3da08dc551542b62f03abfb07e.jpeg) 移动端的自动化测试,最常见的是 Android 自动化测试,我个人觉得 Android 的测试优先级会更高,也更开放,更容易测试;而 iOS 相较于 Android 要安全稳定的多,但也
除了通用定位方式外,iOS 还有其他特殊的定位方式,本章节仅介绍 iOS 特有定位。 ## PredicateString定位 样本元素截图: ![](https://ceshiren.com/uploads/default/original/3X/3/8/383a51753c542423e86d81afc62bace621743099.png) 使用 PredicateString,基
> 本文节选自霍格沃兹测试开发学社内部教材 编写Selenium测试用例就是模拟用户在浏览器上的一系列操作,通过脚本来完成自动化测试。
WebSocket 是一种在单个 TCP 连接上进行全双工通信(Full Duplex 是通讯传输的一个术语。通信允许数据在两个方向上同时传输,它在能力上相当于两个单工通信方式的结合。全双工指可以同时(瞬时)进行信号的双向传输( A→B 且 B→A )。指 A→B 的同时 B→A,是瞬时同步的)的协议。 WebSocket 通信协议于 2011 年被 IETF 定为标准 RFC 6455,
首先明确 Tcp 的概念,针对 Tcp 协议进行接口测试,是指基于 Tcp 协议的上层协议比如 Http ,串口,网口, Socket 等。这些协议与 Http 测试方法类似(具体查看接口自动化测试章节),但在测试过程中需要做些调整。 ## Socket Socket 又称套接字,进程可通过套接字进行网络通信,使多个设备具有交互能力。Socket 适合对传输速度和安全性有严格要求的应用,比
![](https://ceshiren.com/uploads/default/original/3X/3/c/3c2661a3dc11a451ebee2ceeb5a4f06e63f20111.jpeg) 在实际的测试工作中,通常需要对多组不同的输入数据,进行同样的测试操作步骤,以验证我们的软件质量。这种测试,在功能测试中非常耗费人力物力,但是在自动化中,却比较好实现,只要实现了测试操作步骤,
![](https://ceshiren.com/uploads/default/original/3X/4/3/439f9a297bb4fd49a0ef21be8a071720e2959ded.png) 在之前的文章中主要分享了 pytest 的实用特性,接下来讲 Pytest 参数化用例的构建。 如果待测试的输入与输出是一组数据,可以把测试数据组织起来用不同的测试数据调用相同的测试方法。参数
大部分现有的 mock 工具只能满足 HTTP 协议下简单业务场景的使用。但是面对一些复杂的业务场景就显得捉襟见肘,比如对 socket 协议的应用进行 mock,或者对于支付接口的失败重试的定制化 mock 场景。 为解决上述问题,霍格沃兹测试学院设计并研发了 CSRMockServer 在下面的文章中简称 mock server。 mock server 相较于这些 mock 工具,
![](https://ceshiren.com/uploads/default/original/3X/1/9/19cd7a17afd569fed22deb329ae7010ae8ab3c7a.jpeg) 什么是 Junit5,在 Junit5 的官方介绍文档中这写到: Junit5 由JUnit Platform + JUnit Jupiter + JUnit Vintage3部分构成,借
![](https://ceshiren.com/uploads/default/original/3X/3/b/3b35e29dc291886594b63dc5ddb72370285c2d76.jpeg) 登录:不同的用户名,不同的密码,不同的组合都需要做登录场景的测试,正常的排列组合下可能会产生多个用例 搜索:不同的搜索条件产生不同的搜索结果,搜索也是常见的测试项,单个搜索参数或者多
1)启动 Jenkins 后在首页点击"开始创建一个新任务"。 2)输入任务名称,选择自由风格,点击“确定”。 1) 任意输入描述,然后勾选"丢弃旧的构建", 在"保持构建的最大个数中"输入 3。 1)勾选"参数化构建过程",选择添加"字符参数" 2)设置参数名称、默认值和描述 1)在"构建触发器"中勾选"定时构建",日程表中输入H2/ * * * *,表示每两分钟构建一次。 1)在构建中选择执
GitHub 上我们可以 fork 别人的项目,为了与别人产生一种协作关系,将他人的项目在自己本地创建也一个,这里以霍格沃兹测试学院(Hogwarts)的演练环境做演示: 1.1) 点击fork按钮对项目进行fork: 1.2)fork完成后就可以在我们自己的GitHub账户下见到被fork的项目: 2.1)接着我们使用git clone命令将fork的项目clone到本地: 这个
``` $ brew install zookeeper ==> Downloading https://homebrew.bintray.com/bottles/zookeeper-3.4.13.mojave.bottle.tar.gz ... ``` 先来看dubbo-admin的安装;我们先找到它在apache下的官方GitHub,官方也有相关介绍,中英文版都有(毕竟原本
通过上一篇 Dockerfile 语法与指令的学习,本节就开始使用Dockerfile 来制作自己的 Docker 镜像啦。 ## Docker 镜像构建 新建 app.py 文件 ``` from flask import Flask app = Flask(__name__) @app.route('/') def hello(): return 'Hello Worl
![](https://ceshiren.com/uploads/default/original/3X/3/d/3dd370fe849dfbae00034a32587f4431165fb220.jpeg) 提起正则表达式,可能大家的第一印象是:既强大好用但也晦涩难懂。正则表达式在文本处理中相当重要,各大编程语言中均有支持(跟 Linux 三剑客结合更是神兵利器)。 正则表达式是对字符串操作的一