- 博客(58)
- 资源 (9)
- 收藏
- 关注
原创 卑微小测试的一天----自动生成正交法测试用例
工作过程中,我们接触到需求后第一要务是 熟悉需求并且输出测试用例,针对接口测试的入参测试,需要校验大量入参的组合场景,这时我们通常采用正交法来设计测试用例,在减少测试用例的数量时,同时保障测试用例的有效覆盖性。
2023-06-11 11:30:02
1000
原创 【流量回放探索】啄木鸟流量回放平台
本项目是基于RuoYi-Vue单应用版本流量回放引擎基于goreplay演示系统基于如果你想从录制开始体验,需要搭建演示系统newbee-mall-api-go,同时需要将gor部署在演示系统服务中,搭建kafka以便收集流量(你需要在项目中将KafkaConsumer 这个类的自动注入注释解除)相关文档准备中…如果你想直接体验平台流程,直接部署本 前后端分离项目即可,相关文档准备中…gor录制流量并发送kafka消息平台通过消费kafka提取对应的字段。
2022-12-10 11:36:15
1225
2
原创 【go商城】gin+vue跨域问题
浏览器有一个安全机制叫同源策略。同源就是指协议、域名、端口都一样,如果任意一项不一致就是不同源。简单点说就是,你的网页URL和你调用的接口URL不是一个地方的,浏览器觉得有安全风险,不想让你使用这个接口的数据。当我们在本地启动前、后端代码进行调试时,如果使用postman等类似的工具进行调试时,接口是可以请求的,但是在浏览器调用相同的请求会失败。这是因为使用工具调用接口只是简单的访问一个资源,并不存在资源的相互访问。而使用web则触发了同源策略的保护机制。我们在gin的拦截器中定义允许跨域请求,同时需要
2022-06-25 21:51:22
1486
1
原创 【go商城】gin+mysql实现token登陆校验
Cookie,Session,Token这些用于认证,鉴权的名词相信大家都很熟悉了,网上都有大量的文章讲解,这里我们主要针对本商城通过mysql进行存储的token鉴权进行讲解。访问资源接口(API)时所需要的资源凭证简单 token 的组成: uid(用户唯一的身份标识)、time(当前时间的时间戳)、sign(签名,token 的前几位以哈希算法压缩成的一定长度的十六进制字符串)特点token 的身份验证流程:token的解释,转自https://juejin.cn/post/6844904034
2022-06-18 23:10:20
2318
原创 【go商城】gin+gorm实现CRUD
ORM-Object-Relationl Mapping,即对象关系映射,这里的Relationl指的是关系型数据库它的作用是在关系型数据库和对象之间作一个映射,这样,我们在具体的操作数据库的时候,就不需要再去和复杂的SQL语句打交道,只要像平时操作对象一样操作它就可以了GORM就是go语言实现的一个ORM库特点:增加(Create)检索(Retrieve)更新(Update)删除(Delete)如果模型中有 DeletedAt 字段,它将自动拥有软删除的能力!当执行删除操作时,数据并不会永久
2022-06-13 22:46:45
3422
1
原创 一个基于go的开源商城
项目背景2022年TodoList有一项是完成一个开源项目,加上自己尝试用go作为主要的开发语言,于是便突发奇想,用go来做一个开源项目。因为独立设计到实现一个前后端的完成项目可太难了,加上自己的初衷只是为了熟悉go 的语法,于是便在github上找到了 新蜂商城 。新蜂商城原项目的单机版本一共有三个仓库新蜂商城前端 newbee-mall-vue3-app新蜂商城后台管理 vue3-admin新蜂商城Springboot后端前端代码开箱即用,且后端使用的技术栈就是springboot+
2022-05-21 23:06:47
5622
原创 卑微小测试的一天-----年会抽奖系统1.0
年终总结马上2022了,又到了写年终总结和计划的时候,之前一直有写计划,却没有写总结的的习惯。想和大家分享一些自己前两年的一些计划2020年回想2020年也是魔幻的一年,记得年初过年回深后,在出租屋自行隔离了大半个月才去上班,上班半个月公司就裁员了,年前列的大多数想做的事情都无法再公司完成。也是这一年吧,开始写技术公众号了,虽然到目前为止没什么起色,但是这件事情我认为坚持下去还是有效的。2021今年没有有列太多的事项,一方面是因为带孩子确实劳心劳力,二是因为自己变懒了,想躺平!主要原因还是自己变
2022-01-16 18:36:02
610
原创 卑微小测试的一天------jmeter压测(实战踩坑&故障分析)
1、HTTP 和HTTPS 的区别2、绑定域名3、redis主从切换时间4、机房网络上限5、单接口&全链路压测压测接口的选择 通过top20分析核心链路的系统。6、故障分析1、链路跟踪2、jprofile 等工具分析JVM,full GC 等等3、Mysql使用...
2021-10-24 19:14:59
1420
原创 卑微小测试的一天------python数据处理利器pandas
import pandas as pdfrom openpyxl import load_workbook# 文件路径file = "D:\demo.xlsx"# 工具类,用于读取excele中的值class ExcelUtils: def __init__(self, i): self.file = file self.wb = load_workbook(self.file) sheets = self.wb.get_sheet_n
2021-10-22 12:58:45
172
原创 卑微小测试的一天------策略模式+工厂模式替换if-else
在编码过程中你是否经常会遇到过多的 if else ,虽然这样子写逻辑会很清晰,但是一旦条件增多,就会显得代码很臃肿,分支比较多,而且不好维护。这种情况肯定是不建议用if-else的,即使一开始为了加快进度,后面维护起来反而会降低效率。我们先来看看这堆翔一样的if-else分支public void pay(String type,String order) { if (type.equals("wechatPay")) { wechatPay(order);
2021-10-12 22:31:46
255
原创 卑微小测试的一天------jmeter压测(配置相关)
Jmter简介JMeter是开源软件Apache基金会下的一个性能测试工具,常用来进行压测,用来验证服务器端的应用程序的性能,验证系统的性能瓶颈。当然jmeter也可以用来进行接口测试,只是大家不常用。Jmter的安装步骤就不赘述了,网上很多教程,这里我们介绍一下其相关优化配置,因为模拟大并发的场景,如果使用默认的配置,基本达不到压测的要求Jmeter单机常用配置项vim reportgenerator.properties jmeter.reportgenerator.overall_gr
2021-10-11 20:24:43
6316
原创 卑微小测试的一天------构造者设计模式
常用JavaBean赋值方式这种方式是最常用的创建对象的方法。只需要使用无参构造函数,然后为每个成员变量设置setter方法。比如有一个User类User user = new User();user.setName("大乐");user.setQQ("12345678");user.setEmail("12345678@qq.com");user.setWork("click");这种只有几个字段的还好,如果这个类有十多个字段甚至更多的时候,就很难受了。这种方式非常普遍,但是存在一个很.
2021-08-08 20:33:24
130
原创 卑微小测试的一天------防盗链踩坑实录
接口测试过程中,我们常常会遇到各种各样的问题,比如上述的问题,同一个系统,使用相同的登陆状态,A接口可以请求,但是B接口却会报错{"ret":1,"errorCode":"1","errorMsg":"请登录"}这就很难受了Referer是什么?Referer 是 HTTP 请求header 的一部分,当浏览器(或者模拟浏览器行为)向web 服务器发送请求的时候,头信息里有包含 Referer 。比如我在www.sojson.com 里有一个www.baidu.com 链接,那么点击..
2021-07-10 20:46:12
219
原创 卑微小测试的一天------丝滑切换自动化脚本环境
切换环境的背景在日常在工作过程中,一个项目会维护多套测试环境用于不同版本的迭代,这样可以减少一些外在因素影响迭代。这个时候,如何使用一套自动化脚本去测试多套环境的迭代就显得尤其重要实现步骤因为目前项目使用的是TestNG做的接口自动化,如果使用Python的同学可以参考一下思路。下面,上才艺!读取配置文件java读取配置文件有多重方式方式一:采用ServletContext读取,读取配置文件的realpath,然后通过文件流读取出来方式二:采用ResourceBundle类读取配置信息..
2021-06-14 21:21:01
388
转载 CentOS 7.x安装Google Chrome踩坑指南
一、系统简述腾讯云服务器操作系统:CentOS 7.2.1511二、安装Google Chrome1.使用以下命令行安装Chromeyum install https://dl.google.com/linux/direct/google-chrome-stable_current_x86_64.rpm2.安装时可能会出现类似以下错误!!!!!!libXcomposite.so.1()(64bit) is needed by google-chrome-stable-80.0.
2021-04-21 17:37:06
1931
原创 第一次感受到改源码解决BUG的乐趣
因目前公司内部对http接口自动化,dubbo接口自动化都是使用脚本来管理,技术栈还分java 和python ,内部对接很不方便,为了降低使用门槛,提升接口测试效率,所以决定在原有的功能用例管理平台添加接口自动化来统一管理。然后MeterSphere这款神器被我发现了。MeterSphere首先吹一波MeterSphere,个人觉得目前最好,功能最完善的接口自动化平台,大家有兴趣可以看一下项目代码https://github.com/metersphere/,我爱MeterSphere个人对于这
2020-12-21 10:01:30
677
2
原创 面试官:可以优化一下冒泡排序嘛?
十大排序算法中,冒泡排序应该算得上是最简单的一种排序方法了。之前只知道最简单的两个for循环做冒泡,其实在for循环的同时,还可以通过一些小细节来实现对算法的优化。首先我们可以通过动图来了解其冒泡原理通过动图可以清晰的看见冒泡的原理:前后比较,然后移位。下面我们进行实战,对下列数组进行排序int[] arrs = {5,4,1,2,3,6,9,7};最常见的冒泡排序 static int[] BubbleSort1(int[] arr){ int sum =0;
2020-11-29 22:06:05
156
原创 除了Invoke,还能怎么调用Dubbo接口
import com.alibaba.dubbo.rpc.service.GenericService;通过 GenericService 请求dubbo接口 public Object invokeDubboService(DubboTestQuery dubboTestQuery) { ReferenceConfig<GenericService> reference = new ReferenceConfig<GenericService>();
2020-10-14 10:13:04
446
2
原创 Django测试工具平台(五)--第一阶段小结
基于Django的Dubbo接口测试工具平台日常工作中会需要对Dubbo接口进行调用和测试,之前是通过脚本请求,为了做到通用性,所以弄了个小的测试工具平台,后续会增加流量回放功能,用来支持压测场景。该平台采用Django rest framework +VUE的前后端分离,前端使用了网上的一个开源项目,有需要的可以参考github.com/PanJiaChen/…项目启动启动后台项目git 拉去master代码 TestPlatformgithub.com/627886474/T…..
2020-09-24 16:10:10
522
原创 Django测试工具平台(四)---Dubbo接口请求记录 + 前端
前言本章内容主要完成以下几个内容:1、记录Dubbo接口请求2、搜索请求记录3、前端页面完成4、项目第一阶段展示项目展示中主要演示在本地如何启动项目,进行调试。如果需要部署线上环境,可以去搜索其他方案。1、记录Dubbo接口请求这里的数据模型可以根据你自己的需要来添加,比如Dubbo接口可以按照“微服务”,“部门”来划分,因为我这个项目主要是提供思路,所以没有划分的很详细,这里直接由 user_id来记录。class DubboControllerLogs(Model): se
2020-09-17 15:58:52
783
1
原创 Django测试工具平台(三)---用户注册登录
### 前言本章内容主要完成以下几个内容:>1、django切换sqllite至mysql>2、 用户注册功能>3、JWT用户认证功能>4、 获取用户信息
2020-09-12 17:00:10
600
1
原创 Django测试工具平台(二)---请求dubbo接口
前言本系列的第二章内容,主要完成Dubbo接口的请求。如果你对python如何请求Dubbo不熟悉,可以参考之前写的一篇文章httprunner自动化实例(五)—Dubbo接口测试,本文主要讲解如何通过django实现功能。按照平台的规划,“Dubbo接口请求”作为主打功能,需要放在一个单独的APP内,所以我们需要按照上一章介绍的步骤:1、新建APPpython manage.py startapp dubbo2、将APP注册在settings.py文件中INSTALLED_APPS=[
2020-09-04 09:08:53
688
原创 Django测试工具平台(一)--框架准备
前言每进入一家公司,都逃不开一个问题:你的职业规划是什么?一般都是回答自己三年内的规划,五年内的规划还有长期的一些规划今年正好是自己工作的第五年,我想在这个阶段完成一份教程,类似于虫师的自动化教程之类的,希望能对一些测试从业人员有一些帮助平台规划技术栈:DjangoDjango restframeworkVuemysql需要实现的功能: 入门redis相关功能 请求Dubbo接口...
2020-09-02 09:25:49
1006
原创 djangorestframework统一json返回数据
djangorestframework 可以帮我们快速开发出一个遵循restful规范的程序,我们可以通过定义一些方法,来统一这套resuful的返回格式from rest_framework.response import Response# 自定义状态码class HttpCode(object): # 正常登陆 ok = 200 # 参数错误 paramserror = 400 # 权限错误 unauth = 401 # 方法错误
2020-08-12 11:37:07
1095
原创 springboot+mybatis多数据源配置(附源码,page helper分页配置)
测试的工作很大一部分时间都会花费在造测试数据上,尤其对于分布式系统。这种系统一般都是很多小组维护各自的模块,作为下游系统,如果要验证一些业务流程,数据必须来自上游系统的真实数据,所以我们维护了一个帮助测试同事造数的平台,这其中就涉及到 “多数据源的配置”mybatis工作原理创建SqlSessionFactoryBuilder对象,调用build(inputstream)方法读取并解析配置文件,返回SqlSessionFactory对象由SqlSessionFactory创建SqlSession 对
2020-08-01 15:28:23
353
原创 mybatis通过BaseTypeHandler从mysql数据库存取json字符串
在mysql的使用过程中,我们经常会将一些json串存入mysql当中,如下json串{ "params":[ { "name":"zl", "age":18, "createTime":"2020-06-19 09:28:38", "modifyTime":"2020-06-19 09:29:07" } ], "paramsTypes":[
2020-07-17 16:39:13
2288
1
原创 httprunner自动化实例(五)---Dubbo接口测试
国内大部分公司目前都是使用基于Java语言的 Dubbo技术栈,而测试同事普遍对Python技术栈更为熟悉。为了使不懂JAVA代码的测试同事也能进行Dubbo接口层的测试,故对HttpRunner进行二次开发,添加对Dubbo接口的支持1、实现原理关于HttpRunner我想不用多做介绍,测试小伙伴应该都了解,这是一款非常优秀的面向 HTTP(S) 协议的通用测试框架,我们要做的是基于这个框架进行二次开发。根据Dubbo官方文档中提到的:dubbo可以通过telnet命令进行服务治理,详情见Du
2020-07-08 10:45:17
1092
原创 httprunner自动化实例(四)---Filder生成自动化用例
相信大家在使用httprunner进行接口自动化测试过程中肯定遇到一个问题就是在录制接口的过程中有的接口入参实在太多,复制粘贴太麻烦,有时接口还会复制出类似需要解码的url。比如下面这个下单的接口:首先我需要将这个URL进行解码(上图为解码后的URL),然后将32个参数一个个ctrl+c,ctrl+v ,起码要操作64次,才能将入参正确的copy到我的 测试用例中但是在httprunner官方文档中有提到过这样一个特性也就是说我们可以将fildder抓包的数据生成 .har格式的文件,然后通过h
2020-07-07 09:45:45
473
原创 httprunner自动化实例(三)
经验介绍目前HttpRunner这套方案已经在落地,代码等直接copy也可能无法复用,比如登录认证方式,服务器管理等可能方案不同。我尝试自己搭建多套dubbo服务环境,被阻塞很久,所以决定直接介绍一下方案,或许对各位有帮助框架二次开发个人见解HttpRunner功能满足某些特定场景可以通过自己写代码实现一些方法,方便在用例中调用,比如读取配置环境信息,查询数据库等方法比较常见。需要将方法 比如:mysql_get() 定义在 functions.py中,才能在 yml文件中通过${mysql
2020-05-16 11:19:17
623
原创 httprunner自动化实例(二)
第一篇实现了一个单接口的测试,第二篇我们来实现串接口的测试。首先我们需要搭建一个可测试的系统,可以直接在github上找一个商城系统,或者直接在公司系统测试环境进行测试。为什么需要串接口?我们知道“单接口”的测试非常好完成,可以通过各种接口请求工具比如postman,python request包等去发起post,get请求。但是单接口无法验证我们的业务逻辑,只能验证这个单接口是否能够请求,试...
2020-03-29 22:31:44
479
原创 httprunner自动化实例(一)
为什么要使用httprunnerhttprunner是一款非常好用接口自动化测试框架,我们可以通过它来维护一份接口自动化回归测试用例来做到持续集成,保障项目的稳定运行。我相信如果你能在你的简历中写道:通过二次开发httprunner框架来进行接口自动化,面试官肯定会对你更加感兴趣。如何使用httprunner在工作过程如果只使用httprunner进行接口自动化肯定是有所欠缺的,因为各公司...
2020-03-21 23:54:31
1665
原创 elasticsearch 同步Logstash
Logstash 数据同步方法:1、在logstash下新建文件夹cd /home/zl/Documents/logstash-6.4.3mkdir syncchmod 777 sync2、创建数据同步文件vim logstash-db-sync.confinput { jdbc { # 设置 MySql/MariaDB 数据库url以...
2020-03-19 20:27:13
458
原创 mysql删除重复数据,只保留一条有效数据
建表CREATE TABLE `courses` (`id` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '自增id',`student` VARCHAR(255) DEFAULT NULL COMMENT '学生',`class` VARCHAR(255) DEFAULT NULL COMMENT '课程',`score` INT(...
2020-03-12 15:04:43
218
原创 python通过telnetlib请求dubbo接口(含枚举类,实体类请求格式)
dubbo官方文档中有提到:从 2.0.5 版本开始,dubbo 开始支持通过 telnet 命令来进行服务治理。也就是说我们可以通过telnet远程连接已经部署dubbo的服务器,执行shell命令, 可用来调用dubbo接口import jsonimport randomimport reimport telnetlibimport timeclass TelnetCl...
2020-01-17 14:13:21
1069
原创 python处理嵌套json格式数据
info={ 'user':{ 'name':'zl', 'sex':'man' }, 'profession':'IT'}如果使用requests.post 模拟请求时,需要先将user的结构体转换一下格式,也就是user={ 'name":'zl', 'sex":'man' }json....
2019-12-11 16:14:51
2740
原创 python将下划线分隔的名字,转换为驼峰模式
def formatter(src: str, firstUpper: bool = True): """ 将下划线分隔的名字,转换为驼峰模式 :param src: test_date :param firstUpper: 转换后的首字母是否指定大写( testDate or TestDate) :return:testDate """ ...
2019-11-26 17:34:46
840
原创 python调用JAVA
python依赖包jpype依赖安装(需要使用jpype1安装)pip install jpype1将java打成一个jar包1、新建一个maven项目2、项目目录结构如图所示3、代码部分package forpy;import java.text.SimpleDateFormat;import java.util.Date;public class test { ...
2019-11-01 14:06:14
418
goland安装包PJ.zip
2020-10-14
drozer工具
2017-09-12
Django-REST-framework教程中文版
2017-09-12
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人