暂无个人介绍
Docker 还可以搭建Web服务器nginx ?这么宝藏的吗 Nginx(发音同 engine x)是一个异步的Web服务器,主要提供 Web 服务、反向代理、负载均衡和 HTTP 缓存功能。由 Igor Sysoev 创建于2004年,使用 C 语言开发。 ## Docker hub下载Nginx镜像 浏览器访问:https://hub.docker.com/_/nginx 查看Nginx镜像详细信息。 ![tmp|784x522](https://ceshiren.com/uploads/default/original/3X/9/b/9b2f342d5c5485928137d8
编写Selenium测试用例就是模拟用户在浏览器上的一系列操作,通过脚本来完成自动化测试。 编写测试用例的优势: - 开源,免费。 - 支持多种浏览器 IE,Firefox,Chrome,Safari。 - 支持多平台 Windows,Linux,Mac。 - 支持多语言 Python,Java,C#。 - 对 Web 支持良好。 - 简单,灵活。 - 支持分布式测试用例执行。 ## 引入依赖 引入依赖是为了调用 webdriver 中的方法来与浏览器进行交互以实现操作步骤。 - Python版本 ``` from selenium import webdriver
通常使用定位器定位页面上的元素会发生一些定位不到元素,或者定位失败的情况。有可能是页面上元素不唯一,有可能是页面发生变化。这节介绍定位元素的高级用法,使用层级关系定位或者多重属性定位的方式来确定元素的唯一性,从而更精准,更稳定的定位到想要的元素。
一文带你了解K8S 容器编排(下) [更多技术文章](https://qrcode.ceba.ceshiren.com/link?name=article&project_id=qrcode&from=CSDN×tamp=1654851150&author=YL) 批处理任务编排 初学者容易误以为容器的任务只在于部署行为--将软件在容器中部署以提供持续的服务。但其实容器也同样大量的被应用于批处理程序的运行上。比如测试行为是典型的批处理任务范畴, 它不提供持续稳定的服务, 它只是一段特定的程序,而一但这段测试程序结束后就应该销毁一切,包括执行环境和所占用的资源,容器对比于传统的虚
![](https://ceshiren.com/uploads/default/original/3X/4/3/439f9a297bb4fd49a0ef21be8a071720e2959ded.png) 在上一篇文章中分享了 pytest 的基本用法,本文进一步介绍 pytest 的其他实用特性和进阶技巧。 pytest fixtures pytest 中可以使用 @pytest.fixtur
![](https://ceshiren.com/uploads/default/original/3X/4/3/439f9a297bb4fd49a0ef21be8a071720e2959ded.png) pytest 是一个成熟的全功能 Python 测试工具,可以帮助您编写更好的程序。它与 Python 自带的 Unittest 测试框架类似,但 pytest 使用起来更简洁和高效,并且兼容
![](https://ceshiren.com/uploads/default/original/3X/7/5/752649120a70c837c44f2e4885bb61e62b5d69cb.png) 理念与同“UI自动化测试框架”中的“测试步骤的数据驱动”相同,接口中的测试步骤的数据驱动就是将接口的参数(比如 method、url、param等)封装到 yaml 文件中管理。当测试步骤发生
在有些场景中,需要上传文件,而 Selenium 无法定位到弹出的文件框,以及网页弹出的提醒。这些都是需要特殊的方式来处理。 input 标签使用自动化上传,先定位到上传按钮,然后 send_keys 把路径作为值给传进去. 如图所示,是企业微信文件上传的页面 定位到标签为 input,type 为 file 的元素信息,然后使用 send_keys 把文件路径作为值给传进去。 ![](h
在实际工作中等待机制可以保证代码的稳定性,保证代码不会受网速、电脑性能等条件的约束。 等待就是当运行代码时,如果页面的渲染速度跟不上代码的运行速度,就需要人为的去限制代码执行的速度。 在做 Web 自动化时,一般要等待页面元素加载完成后,才能执行操作,否则会报找不到元素等各种错误,这样就要求在有些场景下加上等待。 最常见的有三种等待方式: - 隐式等待 - 显式等待 - 强制等待 后面会一一介
![](https://ceshiren.com/uploads/default/original/3X/9/6/96cad5008c61cc55e7a57630a88eb24589f1e6c4.jpeg) 使用 Rest-assured 集合 Allure 运行完用例之后,在生成的报告中只有断言信息,没有请求的日志信息。而当我们的用例失败时,特别是接口失败时,请求日志是分析原因的第一手资源。那
当 webdriver 遇到无法完成的操作时,可以使用 JavaScript 来完成,webdriver 提供了 execute_script() 方法来调用 js 代码。 执行 js 有两种场景: - 在页面上直接执行 js - 在某个已经定位的元素上执行 js JavaScript 是一种脚本语言,有的场景需要使用 js 脚本注入辅助我们完成 Selenium 无法做到的事情。 S
浏览器访问:https://hub.docker.com/_/nginx 查看Nginx镜像详细信息。 ![](https://ceshiren.com/uploads/default/original/3X/9/b/9b2f342d5c5485928137d8cb6a329ee781a34575.png) 下载镜像,默认会下载lastest最新版本的软件,可以指定软件的版本。例如:ngi
![](https://ceshiren.com/uploads/default/original/3X/7/5/756e5e8564a4e57c44190330107ba54ca7676e16.jpeg) - 需求分析与测试设计(性能需求目标+业务模型拆解) - 测试数据准备和构造(基于模型的数据准备) - 性能指标预期(性能需求目标) - 发压工具配置及脚本编写(压力策略) - 测试过程(
![](https://ceshiren.com/uploads/default/original/3X/e/f/efd4f6ab53cc4a449657509b655cf5e6499878e5.jpeg) 在 UI 自动化测试过程中,面对复杂的业务场景,经常会遇到这样的挑战: - 简单的录制/回放速度快,但无法适应复杂场景; - 编写自动化测试脚本比较灵活,但工作量大且可维护性差; - 以往的
在日常的工作中,常常需要制作自己的项目的镜像,一般通过以下两种方式制作镜像:Docker commit、Dockerfile。 ## Docker commit Docker commit一般用做从一个运行状态的容器来创建一个新的镜像。定制镜像应该使用Dockerfile来完成。 ``` docker commit 容器名 新镜像名:tag ``` 使用这种方式的缺点是:1.对外不
先看 Wikipedia 上的解释: xUnit 是一系列测试框架的统称,最开始来源于一个叫做 Smalltalk 的 SUnit 框架,现在各种面向对象的语言,如 Java、Python 的鼻祖就是 Smalltalk,后来这些语言都借助了 Sunit 框架的理念,有很多通用的规范和特征,也就统称为 xUnit。 - Java : JUnit、TestNG - Python : UnitTes
![](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的基础用法:录制回放功能,断言,聚合报告。李政道教授谈论学习方法,他表明我们可以获取很多信息。 但是,从了解到理解还有一段路要走。只有亲手练了才能变成理解,能获取
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 中运行
![](https://ceshiren.com/uploads/default/original/3X/f/7/f71993f19f3b4b7323fe8c89a1ba0cc56a6821c8.jpeg) 上一篇文章中介绍了rest-assured对返回结果的断言,最后说明了对于Response结果导出的需求。可查看往期文章进行查看。 ``` HTTP/1.1 200 OK Serve
Frida 通过 C 语言将 QuickJS 注入到目标进程中,获取完整的内存操作权限,达到在程序运行时实时地插入额外代码和数据的目的。官方将调用代码封装为 python 库,当然你也可以直接通过其他的语言调用 Frida 中的 C 语言代码进行操作。
为 UI 页面写测试用例时(比如 web 页面,移动端页面),测试用例会存在大量元素和操作细节。当 UI 变化时,测试用例也要跟着变化, PageObject 很好的解决了这个问题。
![](https://ceshiren.com/uploads/default/original/3X/5/2/52e0e9ab44c5ae216682237bfeef655d03d360ce.jpeg) ![](https://ceshiren.com/uploads/default/original/3X/8/c/8c7171b77d0bd8a786e12b5eab2318de6710e6
![](https://ceshiren.com/uploads/default/original/3X/4/3/439f9a297bb4fd49a0ef21be8a071720e2959ded.png) 在之前的文章中主要分享了 pytest 的实用特性,接下来讲 Pytest 参数化用例的构建。 如果待测试的输入与输出是一组数据,可以把测试数据组织起来用不同的测试数据调用相同的测试方法。参数
Protocol Buffers 是谷歌开源的序列化与反序列化框架。它与语言无关、平台无关、具有可扩展的机制。用于序列化结构化数据,此工具对标 XML ,支持自动编码,解码。比 XML 性能好,且数据易于解析。更多有关工具的介绍可参考官网。 Protocol Buffers官网:https://developers.google.com/protocol-buffers Protocol
![](https://ceshiren.com/uploads/default/original/3X/5/b/5b546836e1f235cf50acafef148b56de04edcb57.png) PO的思想最早是2013年由IT大佬Martin Flower提出的: https://martinfowler.com/bliki/PageObject.html 没错,就是他 ---
大部分现有的 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创建job完成自动化测试,核心在于项目的拉取和执行,至于job的创建大同小异,需要了解的可以参考文章:[Jenkins之job创建、参数化与定时构建以及时区偏差填坑] 2.另外还需要的就是执行机的环境(以GitHub拉取项目为例),需要具体细节操作可自行百度Google或参考文章:[Jenkins如何管理、配置、运行node节点,用slave进行分布式运行] - 需要
- 在系统管理->插件管理中下载插件: 1.通过网页端 QQ 邮箱的设置进入到邮箱客户端设置页面。 2.找到邮箱的基础信息。 3.在 Jenkins:系统管理->系统配置中,最底部找到邮件通知,打开高级: 4.填入配置信息后如下: 5.注意到在配置的下方有个"通过发送测试邮件测试配置",我们可以讲其勾选,填入邮箱地址,点击Test configuration来先测试一下邮件的发送. 6.如果按
1)启动 Jenkins 后在首页点击"开始创建一个新任务"。 2)输入任务名称,选择自由风格,点击“确定”。 1) 任意输入描述,然后勾选"丢弃旧的构建", 在"保持构建的最大个数中"输入 3。 1)勾选"参数化构建过程",选择添加"字符参数" 2)设置参数名称、默认值和描述 1)在"构建触发器"中勾选"定时构建",日程表中输入H2/ * * * *,表示每两分钟构建一次。 1)在构建中选择执
![](https://ceshiren.com/uploads/default/original/3X/5/7/577bcc2d8a6d08b63c42c9cf7d62a83d7dec13ea.gif) ![](https://ceshiren.com/uploads/default/original/3X/e/8/e8d7d4ae9c89bd6b22633c2718d97a2598a29a4
上一篇讲到Git的分支管理实操,在线合并和本地合并都进行了实操。毕竟:光说不练是假把式。而只练不整理,只能是傻把式了。分支管理到底如何进行管理呢? 先以GitLab上的一张经典的图打头,作为一个总体概览,也方便理解分支的管理和走向: 现假设公司有名为Hogwarts_Online2的开发项目,其中包含了上线分支master,开发分支develop,测试分支release,和个人开发的特性
![](https://ceshiren.com/uploads/default/original/3X/b/4/b4c32cdcbcaa092f3e3d47b294d62b0883b74bee.png) 上期我们以Jenkins为例,一边实战一边了解Docker的基础命令。这期,我们将带大家使用Docker搭建三个平时测试工作中非常有用的小工具。学会这三个实战之后,你就可以说对Docker不是
![](https://ceshiren.com/uploads/default/original/3X/5/e/5ef7e2d3db3d82710978c34fcb918c00adcd4df6.gif) ![](https://ceshiren.com/uploads/default/original/3X/7/8/781491bd545651b31c9ed799f843c01cc634c7d