自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

tomoyachen

API auto: Requests + Pytest; E2E: Playwright, Cypress; 性能: JMeter; Others: Flask, 测试经验

  • 博客(56)
  • 资源 (7)
  • 收藏
  • 关注

原创 Playwright 获取元素是否存在、获取元素数量 (Node.js)

很多时候我们需要绕过一些东西或者做预处理,需要判断一个元素是否存在,需要一个即使找不到元素也没用关系的处理方法。官方提供了用来获取元素是否存在的。但是!它会立即返回结果,不会智能等待。

2023-05-11 19:24:49 3490

原创 Python Pytest 链式调用风格 的 自定义断言库

Python Pytest 链式调用风格 的 自定义断言库

2023-05-06 13:26:22 165

原创 Tuskr 用例平台 快捷操作栏(基于 油猴)

最近在挑选一个合适的用例平台来托管和执行用例,就觉得 tuskr 颜值还挺不错的。但是 Tuskr 执行一条用例真的好繁琐,至少需要 3 步。点击Status选择PassedorFailed页面滑到底部,点击我特别希望只需要操作一步就能选择执行结果并且进入下一条用例。于是就基于 油猴实现了这个脚本。目前脚本已托管到 greasyforkhttps://greasyfork.org/zh-CN/scripts/451244-tuskr-小助手。

2022-09-12 16:55:22 369

原创 Kodi 电影海报墙显示电影名称(通过修改默认皮肤样式)

演示环境:Kodi 19.3 Windows 版本前言Kodi 默认皮肤的电影海报墙是不会显示电影名称的,所以为了方便我海报都用的简中或繁中。但是一般简中海报会有各种上映日期等其他推广信息,不是很美观。一般 Kodi 海报墙想显示标题有 2种方法1. 修改皮肤样式2. 更换其他皮肤插件本文介绍第一种方式,修改皮肤样式。修改皮肤Kodi Windows 版本的默认皮肤海报墙样式文件地址如下:…\Kodi\addons\skin.estuary\xml\View_54_InfoWall..

2021-12-26 16:15:08 15375

原创 Requests + Pytest + Allure 实现 API 自动化测试

项目地址:https://github.com/tomoyachen/api-test-scaffold基于 PyTest + Requests + Allure 实现快速搭建 API 自动化测试项目的脚手架。TODO登录态用例示例(同一用户免登录策略)支持操作 Mysql、Redis基于 GitLab 的 CI基于 飞书、钉钉的通知经典用例设计示例(动态传参、遍历执行 等)基于 pre-commit 规范提交代码风格已实现基本的测试用例示例简单、易维护的分层多套环境的配置.

2021-11-26 00:40:58 1493

原创 RPG Maker MV/ MZ 工程打包 Android APK 文件(使用 Website 2 APK Builder Pro)

目录前文安装 Website 2 APK Builder Pro导出工程打包 apk新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入前文目前比较流行的 4 种打包 apk 方式,各有优缺点通过 Android Stu

2021-11-20 15:02:27 14486 2

原创 使用油猴脚本实现 Jira 缺陷自动填充描述模板、扩展快速工具栏

主要功能自动填充缺陷描述模板自动选择指定 or 最新的冲刺注入快速选择栏,可以快速选择自定义字段(环境、分类)和经办人其他因为牵扯到很多自定义字段,不同的平台所以肯定没法直接用,需要修改 field 定位。快速选择栏实现参考了这个脚本:https://greasyfork.org/zh-CN/scripts/390169-jirabugtemplate源码// ==UserScript==// @name Jira Bug Template// @na

2021-11-18 18:50:29 2439

原创 Pytest + GitLab CI 单独重跑失败的用例

前言除了失败立即 retry,有时我们也需要在开发修复后单独重跑失败的用。介于 pytest 可以手动指定 n 条用例目录,所以实现起来并不难。举个例子# 执行类下面所有用例python testcase/feat_a/test_a.py::CaseClassATest# 多个目录用空格间隔python testcase/feat_a/test_a.py::CaseClassATest testcase/feat_b/test_b.py::CaseClassBTest1. 每次执行用例时

2021-08-17 00:51:41 1465

原创 基于 Selenium 掘金自动签到、抽奖的定时任务

项目地址:https://github.com/tomoyachen/juejin-signin*以下内容与 README.md 基本一致介绍每个部件都是相互独立的,可以按需使用。值得一提的是,由于是自己使用。所以 cookies 和钉钉机器人 token 使用比较随意。建议使用者自己在优化一下,提高安全性。juejin.py基于 Selenium 的签到、抽奖脚本。使用 cookies 免登陆。可手动执行。job.py基于 schedule 的轻量化定时任务。启动后会按照设定时间定时.

2021-07-20 00:37:59 2036 3

原创 Playwright + Pytest 实现 Web UI 自动化测试

前言平时工作一直用的 Cypress,但是 Cypress 真的太慢了,就想看看有什么替代品。Selenium 我一直不太喜欢,正好看到微软出的 playwright 好像蛮有意思的。虽然 playwright 的 js 版本 的 star 是 python 版本的十倍之多,不过我个人还是更喜欢 python 和 pytest ,就还是用 python 版的playwright 搭配 pytest来食用了。(其实是 js 不太熟悉 XD)风格和我之前写的 api-test比较相似,越小越简单越好。项目

2021-04-13 00:35:48 9479 15

原创 软件测试人员 面试题、面试经验

软件测试人员 面试题、面试经验个人觉得重点的内容,会在标题或问题前面标记 * 号一些知识我会加上自己的理解,和面试官预期的结果,各位读者就见仁见智吧文章目录软件测试人员 面试题、面试经验1. 测试理论软件生命周期?* 软件测试的生命周期?* 用例的基本要素?* 缺陷的生命周期?有哪些状态?* 缺陷的基本要素?2. 网络知识3. 接口测试4. Web UI测试5. 性能测试6. 数据库7. Linux1. 测试理论理论部分内容是相对客观又较为主观的认知部分。所以每个人理解与概括的阶段名字会有一

2021-03-22 22:22:58 1387 2

原创 windows 环境解决 python 3 编码错误 UnicodeDecodeError: ‘gbk‘ codec can‘t decode byte 0x80 in position 16

文章目录1. 自己代码报错了1.1 open() 指定编码方式【推荐】1.1 PYTHONIOENCODING 环境变量1.3 IDE 配置编码2. 依赖库代码报错了2.1 open() 指定编码方式2.2 win 10 系统编码兼容设置【推荐】3. 待补充1. 自己代码报错了1.1 open() 指定编码方式【推荐】对依赖库编码报错也有用,但是要修改本地依赖库的源码,因此不推荐这个很直接,就是open函数加一个入参就行了。f = open('text.txt',encoding='utf-8

2021-02-08 15:19:15 1744 1

原创 GitLab CI 并行执行 Cypress 测试脚本

文章目录1. 目前流行的并行运行方法1.1 官方parallel参数1.2 个人开发者写的插件1.3 基于 CI 平台的2. GitLab CI Parallel2.1 介绍2.2 使用方法3. 根据 CI_NODE_INDEX 生成测试目录3.1 切分用例的不同方向3.2 实现效果3.3 源码4. gitlab-ci.yaml 中的改动5. 效果如何?5.1 耗时变小了5.2 retry 成本变低了随着用例越来越多,Cypress 脚本执行效率已经越来越慢了。我们尝试减少运行时间的过程中,做了一些事情

2021-01-07 18:13:07 3080 1

原创 python 对比 字典 dict 不同之处

现在还有一些不足之处,比如list往下深挖的时候,没有再根据不同type来递归了。而且整个方法感觉还可以写的更通用,可以根据不同数据类型来递归。但是在方法里写有点麻烦,有时间写成一累,再好好考虑怎么更好的实现。.pydef compare_dict(a: dict, b: dict, path='', is_ignore_list_sq = False, is_print = True) -> bool: """ 对比字典,打印不同之处 :param a: 对比字典1

2020-09-03 11:55:52 1608

原创 pytest + pytest-html skip 用例后,报错 AttributeError: ‘tuple‘ object has no attribute ‘rsplit‘

最近发现pytest框架中,skip用例后,如果生成报告就会报错,不生成报告就不会报错。报错内容是 AttributeError: ‘tuple’ object has no attribute ‘rsplit’查来查去没发现问题,百度上也没人说过这个事。后来在Google上发现了其他人也遇到了同样的问题。所以我记录一下,如果其他人遇到了也能百度的到这个解决方法。其实原因就是pytest 6.0.0版本出现的bug,低版本没有这个问题。并且官方在6.0.1版本中修复了。所以更新到6.0.1就不会存

2020-08-21 18:35:55 1524

原创 Pytest 巧用环境变量实现常规方法使用 fixture 对象、fixture 函数入参方法、免登录策略示例

文章目录1. 前言2. 外部入参走出fixture魔咒3. fixture函数入参方法4. 把case失败的接口会话写入报告1. 前言最近把之前写的基于unitest的测试项目迁到pytest了,虽然pytest无缝支持unitest的写法,但是还是按照pytest的规范改动了不少。本文就来记录一下实际使用过程中遇到的问题。pytest有一个fixture概念,甚至推荐setup、 setdown也用fixture的yield来实现。*fixture不能手动调用,只能使用在其他fixture函数或

2020-08-09 11:14:05 1413

原创 GitLab CI 构建过程中映射Kubernetes上的MySQL端口

我所在团队一样,测试环境的MySQL在阿里云的Kubernetes集群上,但是又没有映射一个固定地址来让我们访问。所以每次连接测试环境,需要本地用kubectl端口转发MySQL 3306到本地才能访问。如果你所在的团队和我一样,那么这篇文章...

2020-08-07 20:08:19 839

原创 通过kubectl连接Kubernetes集群,附shell命令

文章目录1. 前言2. 获取鉴权信息2.1 安装kubectl2.2 配置凭证3. 端口转发4. 附4.1 端口转发实际命令4.2 更易用的小脚本1. 前言我所在团队一样,测试环境的MySQL在阿里云的Kubernetes集群上,但是又没有映射一个固定地址来让我们访问。所以每次连接测试环境,需要本地用kubectl端口转发MySQL 3306到本地才能访问。如果你所在的团队和我一样,那么这篇文章或许会给你一定的帮助阿里云官方说明文档https://help.aliyun.com/documen

2020-08-07 19:42:01 2340

原创 Jmeter3.1官方自带的HTML图形测试报告 + 中文 (Jmeter 3.1~5.0通用)

*JMeter4.0 开始无需修改配置文件了,可以直接跳过第一步,直接用命令生成报告。*JMeter3.1~5.1 汉化文件通用,需要者可以直接下载覆盖即可。--以下为原文-------------------------------------------------------------------------------------------------------Jm...

2020-07-14 13:53:14 30606 2

原创 兼容性测试神器 responsively-app

官网 https://responsively.app/下载地址 https://github.com/manojVivek/responsively-app/releases当时v0.1.6,DIY设备信息后,不然新设备不会显示,还自动添加所有默认设备。几十个设备一起添加到首页,当时我的电脑直接蜂鸣了。。目前版本v0.2.0,v0.1.6那个致命bug终于修复了。自定义设备只需要填写相关信息就可以了,User-Agent可以从浏览器Copy过来比较真实。...

2020-06-15 16:02:34 5985

原创 JMeter 5.0 + InfluxDB + Grafana 性能测试监控平台(Windows平台)

2020-04-21 16:44:21 2525 2

原创 python 基于unittest写接口自动化脚本

python 基于unittest写接口自动化脚本一、项目介绍1. 用例写法2. 执行结果3. 项目目录二、核心代码1. request_api.py2. tool.py3. 某个接口的request文件3. 某个接口的testcase文件三、报告1. Web报告四、后言1. 生产力还是花瓶?2. 扩展3. 感悟一、项目介绍unittest用例管理、提供执行器、扩展可能性。其实不用unitt...

2020-02-20 17:11:02 1767

原创 python flask实现测试环境数据构造平台

python flask实现测试环境数据构造平台一、项目介绍1. 页面概览2. 项目目录二、核心代码1. Web框架2. 脚本三、日志1. mysql记录日志后言一、项目介绍一直觉得测试过程中最花时间的是造数据,那么有了一个数据构造平台就能减少这部分时间,从而提高效率。1. 页面概览2. 项目目录二、核心代码1. Web框架前后端没分离,flask实现的,整个Web框架用的别...

2019-12-13 19:38:41 1141 4

原创 python 实现ini文件用例接口测试工具+markdown格式测试报告

python实现ini文件用例接口测试工具一、项目介绍1. 用例格式2. 项目目录二、核心代码1. core.py2. vars.py3. opt.py4. rerport.py三、报告1. Web报告四、后言1. 通用化与定制化2. 扩展3. 感悟一、项目介绍算是数据驱动+关键字驱动吧。1. 用例格式ini文件2. 项目目录common --core.py --opt.py...

2019-12-13 19:19:08 698

原创 Git 常用命令 与 常见场景

文章目录Git常用命令克隆到本地查看分支列表与当前所在分支检出 切换分支到xxx分支添加目录内新文件到版本管理列表添加目录内新文件到版本管理列表提交到本地仓库推送到远端拉取到本地 不自动megre拉取到本地 自动megre把xxx分支合并到当前分支新建一个名为xxx的分支(从当前分支克隆)删除 xxx分支常见场景同时两方修改同一文件, 自动merge同时两方修改同一文件, 手动mergeGit常...

2019-10-11 23:08:42 403

原创 PHP代码覆盖工具 - PHPCodeCoverage 部署教程 windows篇

PHPCodeCoverage 部署教程1. 简介1.1 代码覆盖度1.2 PHPCodeCoverage2. 部署2.1 安装xdebug2.2 安装PHPCodeCoverage1. 简介1.1 代码覆盖度测试过程中一直有一个痛点,就是如果去统计测试工作的覆盖度。我们知道有用例覆盖度、需求覆盖度和代码覆盖度。其中,代码覆盖度(概念可参考这篇博文)的概念一般出现在单元测试或者白盒测试。那么...

2019-09-29 00:15:27 1153 3

原创 用node.js写一个websocket客户端保持连接,用JMeter来发送大量消息,再对比数据

一、 简介之前同事是用python写的,只能启2000个ws连接左右。我用node.js写了一下发现效果很好,至少5w个没问题。大概介绍一下我的测试过程需求:需要验证ws服务端,启5w个连接是否正常。需要验证ws服务端,启5w个连接时,通过业务接口发消息是否会丢数据。测试方案:node.js脚本作为客户端,用来启ws连接、保持连接、统计收数据情况JMeter脚本作为负载机,...

2019-07-12 17:32:58 1208

原创 JMeter学习拓扑图

2019-07-12 16:49:53 743

原创 Jmeter跑性能脚本遇到的常见问题

本文总结了一些Jmeter执行性能测试时常见的问题。通常请求报java错误时,就需要在自己脚本或是运行环境上找原因了。1. TCP连接数耗尽在执行Jmeter性能测试脚本过程中,当线程数>500就会遇到这2种错误,而且占总数很多。Non HTTP response code: java.net.BindException/Non HTTP response message: Addr...

2019-04-09 18:52:12 4867

原创 Jmeter 分布式测试 详细教程

Jmeter分布式测试1. 介绍2. 准备工作2.1 执行机准备工作2.2 调度机准备工作3. 执行方法4. 命令行进行远程启动5. 可能遇到的问题5.1 java.io.FileNotFoundException: rmi_keystore.jks单台机器运行500个线程就基本到极限了,所以很多时候我们需要用到分布式执行方式。1. 介绍Jmeter的分布式执行方式,分为一台调度机和多台...

2019-03-27 20:01:44 1912

原创 Postman预处理自动生成签名参数(sign)

Postman预处理算出sign值很多接口会有sign参数,为了防止被恶意篡改参数,所以对所有参数用一定规则排列后+盐再加密。有些开发可能配置了在测试环境暂时屏蔽签名,或者用一个通用签名。但其实这样有许多弊端。这2条语句可以分别获得body参数和url中的query参数。源码如下:let queryParam = pm.request.url.query.members;let pa...

2019-01-11 18:54:09 16745 1

原创 Jmeter从下载到完成性能测试实战教程(Windows平台)

目录下载安装Jmeter安装相关插件下载插件管理工具安装性能测试相关插件安装监控服务器资源程序设计一个性能测试脚本下载安装Jmeter计算机上已装好Jmeter的请跳过此步骤。本教程是根据Jmeter5.0编写的,其他版本可能有出入。访问官网并下载,培养大家自己动手的习惯,就不给出官网链接了,自己百度吧。Binaries的意思是发行版。Source是源码,用于二次开发。解压出来就算...

2018-09-29 18:48:20 12553 26

原创 Jmeter处理API响应中复数数据:利用JDBC返回的ArrayList对象转成JSON格式断言文本

一、前言1. API接口响应的JSON格式文本一般而言,API接口的响应普遍是一个JSON格式文本。而一部分接口不止返回1条数据,而会返回复数数据。举个例子,有这么个接口。根据status去查询用户email,返回结果不止一个用户。大致结构如下。{    "errCode": "0",    "data": [{        "Id": 1,        "Email"...

2018-08-24 18:01:29 1161

原创 Airtest 读Mysql数据库,例:读取表中余额与界面显示的余额做断言。

最近接触到Airtest这款工具,非常的喜欢。本身我对APP UI自动化不是那么熟悉,不过这款上手真的很快。这款工具是网易做的,主要用于手游测试。适用于Android、iOS和Unity等架构。最大亮点是支持图像识别。官网文档:http://airtest.netease.com/docs/docs_AirtestIDE-zh_CN/index.html 前言、介绍1. 主界面...

2018-08-01 18:43:00 3801 2

原创 Katalon Studio 读MySql数据库(groovy语句),例:读取表中短信验证码

1. 假设现在要写一个业务流程脚本:注册一个新用户,填入手机号后,输入响应验证码,并提交注册。Katalon自带的Data files显然不满足,因为我们要实时查询不同where条件的返回值。 2. 我们可以直接用groovy语句写一个取值方法。例如:import groovy.sql.Sqldef getYZM(def mobile){ //连接数据库 d...

2018-08-01 14:22:28 2098

原创 Postman读取csv文件完成接口自动化测试(附Jmeter做相同工作的对比)

  最早接触Postman的时候还是一个Chrome插件,后来已经发展成了完成客户端。最近研究了一下,发现Postman也可以完成很多事情。譬如读取csv文件完成接口自动化测试。不过尝试过后,感觉还是Jmeter顺手和实用一些。具体可以看两个工具完成相同工作时的步骤和表现。 一、接口示例: 二、用例示例: 三、Postman篇1. 配置环境右上角齿轮按钮-&...

2018-07-27 20:34:16 6933 4

原创 APP弱网测试 抓包软件就能用于模拟弱网(Fiddler、Charles)

电脑开代理,并限速,手机连电脑代理。原理大同小异所以就地取材就好,很多抓包软件就可以完成这个使命。PS: iOS可以直接在设置中启用模拟网络制式 Developer->Network Link Conditioner一、Fiddler1. 首先去设定弱网情况 Rules->Customize Rules...2. 找到这一段,修改上行下行延迟(可以搜索SimulateModem或者De...

2018-07-10 20:39:37 3127

原创 Katalon Studio 运行过程中创建一个自定义元素对象,例如:定位到列表中某个用户名。

1. 假设现在要写一个业务流程脚本:添加了一个新用户,然后在列表中点击这个用户,进行下一步操作。用户id    姓名    xxx    xxx    xxx10001   张三    xxx    xxx    xxx10002   李四    xxx    xxx    xxx10003   王五    xxx    xxx    xxx在录制脚本过程中,类似于上面这个页面...

2018-06-20 21:05:24 3326

原创 Jmeter对Web Socket进行压力测试 —— 200人直播课实战经验

Jmeter对Web Socket进行压力测试 —— 200人直播课实战经验最近接到一个任务,是为直播课进行500人压力测试。而我们的上课是通过Web Socket长连接的。之前没有接触过Web Socket,也没要来接口文档。就一点点自己摸索,也算完成了这次任务。Jmeter的WebSocket SamplerChrome查看WebSocket会话设计jmx脚本(实战)测试总结...

2018-06-08 21:14:40 37522 16

原创 QC中使用测试模版+参数,对用例进行参数化

1. 新增一条测试用例。点击"插入参数"按钮,输入一个参数名。(或者直接使用>>格式编写)2. 使用参数名>>>编写用例模版。这里写一个示例。3. 将测试用例转化为测试模版。4. 再新增一条测试用例。点击"调用测试"按钮,插入刚才的用例模版。5. 当调用测试模版时,如果测试模版中有参数名,则会让你输入对

2018-01-04 19:47:48 1076

JMeter5.0+InfluxDB1.8+Grafana6.7.2.zip

JMeter 5.0 + InfluxDB 1.8 + Grafana 6.7.2 教程链接:https://blog.csdn.net/tomoya_chen/article/details/105642779

2020-04-21

HttpMockServerTool

API接口Mock测试神器 一键启动一个Mock服务器,用于接口测试调试脚本。 java编写,可自定义的响应文本

2018-09-29

Jmeter性能测试Demo

Jmeter性能测试Demo 完整、完善、有生产力的脚本设计模型 相关教程: Jmeter从下载到完成性能测试实战教程(Windows平台) https://blog.csdn.net/tomoya_chen/article/details/82901291

2018-09-29

Jmeter WebSocket Sampler 依赖文件

包含Jmeter组件:JMeterWebSocketSampler-1.0.2-SNAPSHOT.jar和其他6个依赖文件。解压后全部放到/lib/ext目录下,并重启Jmeter。

2018-06-08

jmeter_extra_tool-v1.1.jar

jmeter_extra_tool是一个专为Jmeter服务的常用工具类和自定义函数集。为日常的测试工作带来方便。开源地址: https://coding.net/u/tomoya_chen/p/jmeter_extra_tool/git

2017-10-25

jmeter_extra_tool-v1.0.jar

jmeter_extra_tool是一个专为Jmeter服务的常用工具类和自定义函数集。为日常的测试工作带来方便。开源地址: https://coding.net/u/tomoya_chen/p/jmeter_extra_tool-v1.0/git

2017-10-22

jmeter-results-detail-report_21.xsl

jmeter-results-detail-report_21.xsl 使用方法:https://blog.csdn.net/tomoya_chen/article/details/55255366

2017-02-16

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除