随笔分类 - 测试不是一点点
无论是单测,接口,性能,还是CI/CD,测试平台开发,我会将我所见所闻的测试技术全部交付与你。
摘要:什么是kuiper EMQ X Kuiper 是 Golang 实现的轻量级物联网边缘分析、流式处理开源软件,可以运行在各类资源受限的边缘设备上。Kuiper 设计的一个主要目标就是将在云端运行的实时流式计算框架(比如 Apache Spark,Apache Storm 和 Apache Flink
阅读全文
摘要:背景 最近在做物联网平台性能分析,最终选择EMQX作为对比对象。我小试牛刀地搭建了一下EMQX,并顺便安装了一下EMQX的Dashboard插件:emqx-dashboard。 简介: EMQX:EMQ X (Erlang/Enterprise/Elastic MQTT Broker) 是基于 Er
阅读全文
摘要:背景 编译EMQX插件依赖了git的版本,需要使用1.8.5以上的版本,但是我系统(centos7)中的版本为1.8.3,不符合版本要求,如下图 安装过程 1. 卸载旧版本 yum -y remove git 2. 安装依赖 sudo yum install -y curl-devel expat-
阅读全文
摘要:背景 使用pytest进行断言判断的时候,为了用例的精准性,经常会多个方面进行断言,比如如下: 断言1:断言响应的http的状态 断言2:断言响应返回的code值 断言3:断言响应返回的json中的data字段是否符合预期。 如果使用原生python的assert,就会遇到一个断言失败则全部失败的情
阅读全文
摘要:背景 在使用pytest-ordering插件的时候,运行case报错:NameError: name 'pytest' is not defined。实际case如下: test_demo.py @pytest.mark.run(order=2) def test_login(): assert
阅读全文
摘要:背景 在写接口或功能自动化case的时候,会遇到一些case有先后执行顺序的场景。比如:注册->登陆,先调用注册接口在数据库里面生成用户名和密码,然后使用登陆接口验证登陆。 在pytest里,如果注册和登陆分别是两个testcase,默认执行执行顺序是从前到后的。 例子 有一个pytest的测试ca
阅读全文
摘要:背景 最近在使用pytest框架写测试用例的时候,为了调试case,我在其中使用了print来打印相关的变量值,如下图: 分析 图中的setup_class和setup_method分别在类开始时和用例执行前被调用,但是实际运行pytest xxx.py的时候,print函数打印的信息没有输出到控制
阅读全文
摘要:前言 在使用pytest框架的时候,经常会涉及对pytest命令进行二次封装,比如写一个shell或者python脚本调用pytest。这样做的好处是可以为用户提供几个运行场景,简化pytest的命令行参数使用。封装脚本需要对实际运行的pytest命令进行退出码判断,然后进行逻辑判断再返回给实际用户
阅读全文
摘要:前言 上一期介绍了httprunner3.x,并尝试安装了httprunner3.x,在使用hrun make命令时报错了:missing dependency tool: black,报错如下。 解决过程 根据提示,执行pip install black 提示black已经安装到python3的相
阅读全文
摘要:Httprunner是一款简单优雅的http(s)的接口测试框架。 在当前测试行业,接口测试已经是必备技能了,而python也是广大测试同行们深爱的语言之一。httprunner这个工具就兼有了接口录制/导出,多种case编写格式(json/yml/pytest),入门门槛低,灵活且生态完整。 ht
阅读全文
摘要:什么是minikube? minikube是单机版的kubernetes,主要用于方便个人学习和研究K8s。 你仅需要一些一些容器环境(例如docker)或者虚拟机环境,然后在此之上使用minikube start就可以启动K8s。 环境依赖: 2核以上CPU 2GB以上内存 20GB可用的存储空间
阅读全文
摘要:题目 给你一个有效的 IPv4 地址 address,返回这个 IP 地址的无效化版本。所谓无效化 IP 地址,其实就是用 "[.]" 代替了每个 "."。 示例 1: 输入:address = "1.1.1.1" 输出:"1[.]1[.]1[.]1" 示例 2: 输入:address = "255
阅读全文
摘要:背景 最近使用ansible管理项目部署,有个前端的配置项是类似字典类的配置,其值如{‘memu1’:['/test1','/test2']},在ansible渲染后模板配置项变成了{u'memu1’:[u'/test1',u'/test2']}。 问题过程 假设ansible中某配置文件的模板如下
阅读全文
摘要:背景 最近在写vue项目的时候遇到一个axios调用接口的坑,有个前端模块涉及axios去调用多个接口,然后请求完获取数据之后,再使用windows.location.href重定向到新页面,这时候却发现axios请求的接口都是出于canceled的状态。 例如: axios.get('/url1'
阅读全文
摘要:背景 公司的项目全部由pm2管理,有一天不知道什么原因,利用pm2 list查看APP列表,发现有几个服务处于STOP状态,我尝试使用:pm2 start all 结果报错:[PM2][ERROR] Process 1021 not found 解决方法 直接删除报错的app id即可,如:pm2
阅读全文
摘要:每日一刷的LeetCode题目又来了,寒冬之下,助你拿一个大厂的测开offer 给你一个数组 nums 。数组「动态和」的计算公式为:runningSum[i] = sum(nums[0]…nums[i]) 。 请返回 nums 的动态和。 示例 1: 输入:nums = [1,2,3,4]输出:[
阅读全文
摘要:引言 本题为LeetCode上的shell简单系列,建议掌握此题,一二线互联网的面试依旧越来越LeetCode风。已经逐渐从开发吹到了测试开发。。 题目 给定一个文本文件 file.txt,请只打印这个文件中的第十行。 示例: 假设 file.txt 有如下内容: Line 1 Line 2 Lin
阅读全文
摘要:前言 Telegraf 是一个用 Go 编写的用于收集机器数据的代理程序。它可部署到机器上收集系统和服务的统计数据,并通过配置写入到 InfluxDB 数据库,然后在通过Grafana或者Chrongraf用于数据展示。 核心功能 完全由GO编写,编译产物仅为一个二进制程序,安装运行无需外部依赖 运
阅读全文
摘要:背景 公司已上线的项目中的broker集群有部分请求响应较慢,所以进行了线上broker服务的扩容。扩容后整体broker集群的负载下来了不少。这样一周后,某天看rocketmq的客户端的日志中零星打印了报错:system busy。 问题分析 为什么broker集群扩容了,仍旧有报错呢?和开发对了
阅读全文
摘要:背景 公司的机器上安装了某些node包有冲突,这时候我想去清理一下现有的node包缓存,重新去安装一下node包,但是node_module的目录在哪个路径呢? 解决方法 1. 查看node_modules的目录,执行:npm root -g 2. 查看npm的可执行文件所在目录:npm bin -
阅读全文