自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

boweiqiang的博客

提升工作效率,不搞996

  • 博客(43)
  • 资源 (1)
  • 收藏
  • 关注

原创 深入探讨:数据驱动测试(DDT)与关键字驱动测试(KDT)

关键字驱动测试框架是当前比较流行的一种框架之一,并且现在的自动化测试工具QuickTestProfessional已经将关键字驱动框架融入到工具中。那么究竟什么是关键字驱动测试,它与数据驱动测试有何区别?让我们来深入探讨一下这个话题数据驱动测试数据驱动的自动化测试框架是这样的一个框架,从某个数据文件(例如ODBC源文件、Excel文件、Csv文件、ADO对象文件等)中读取输入、输出 的测试数据,然后通过变量传入事先录制好的或手工编写的测试脚本中。其中,这些变量被用作传递(输入/输出)...

2021-01-19 23:45:18 4444 1

原创 微信支付商户平台的apikey与公众平台的appsecret的区别

微信支付的接入流程比支付宝要烦锁,坑多,配置和调试起来都很麻烦。昨天在配置三方商城的微信支付时,需要用到appsecret,但appsecret是微信公众平台的东西,在微信公众号相关开发时才会用到,跟商户平台的apikey完全是两个概念,所以一定要做好区分,避免混淆。经过我的一翻折腾,各种百度和我司的开发代码,可以这么理解:appid是在公众平台注册公众号,小程序或开放平台注册应用时...

2020-04-15 19:10:08 5950 2

原创 自动化测试框架基石工程

介绍https://github.com/buweiqiang/AutotestCornerstone此工程取名叫AutotestCornerstone,意在于提供一个自动化测试的基础框架工程,其中包含了众多的自动化测试需要用到的基础功能,下载下来编写测试用例即可,解决了入门同学不知道如何设计测试框架的痛苦。有能力的同学可以在此基础框架的上进行一些修改,以符合自己所在公司和团队的需求。主要...

2019-12-05 15:39:15 793

原创 3.3.0_beta.4这种版本号命名你见过吗?

奇葩的软件版本号

2024-02-21 14:25:17 90

原创 ssh 报错:no matching host key type found. 解决方法

今天在工作中想通过ssh连接到远程linux服务器时报错:Unable to negotiate with 192.168.22.166 port 2222: no matching host key type found. Their offer: ssh-rsa。ssh -L 本地网卡地址:本地端口:目标地址:目标端口 用户@目标地址。

2024-01-16 14:40:45 2456

原创 设计不合理才是最大的问题

如果强行产生关系,就会使程序变的复杂,在修改程序时,很容易引起bug。尤其是当模块较多时,模块间的相互依赖我们称之为耦合,耦合越多,越容易出问题。即由于修改其他模块的逻辑导致企业出现了多个管理员,结果所有的管理员都不能登录了(当然实际还有其他的影响,只说登录是方便缕清逻辑)。线上故障之所以多,就是因为我们在做设计的时候不愿意费脑子思考,什么都不如简单粗暴的修数据来的爽快。从程序设计角度来分析,【企业设置管理员】和【企业成员登录】是两个完全不同的抽象概念,应设计为两相模块,应该互不影响。

2024-01-10 11:44:17 663

原创 996与企业伟大是因果关系吗?

996是现象,我没有资格评论其对错,但其绝对不是产生伟大产品的原因。

2024-01-04 13:20:28 661

原创 中国ToB类软件有一个很大的问题

软件难用,不是:我们做的不好。而是:用户不会用。

2023-12-08 12:33:14 635

原创 思考是需要时间的

最近看到一遍关于实验室管理的英文文章,里面提到,工作人员在工作一段时间后,就要take a break,因为人长时间工作后会产生疲劳,就容易造成差错。我无力改变现状,我只想说,我累了。

2023-08-29 13:08:07 139

原创 你是不是一个好的测试工程师?

一个好的测试工程师,是将问题扼杀在摇篮里,还是事后写工具发现问题?

2023-07-19 16:18:58 490

原创 springboot多模块工程单元测试jacoco统计代码覆盖率总结

每个模块都这么配置的话,生成的报告是各自独立的,即会生成3个报告,那么怎么把各个模块的代码覆盖率统计在一起,生成一个聚合的报告呢?jacoco在prepare-agent阶段会生成一个属性指向jacoco的runtime agent,默认这个属性叫argLine,我们需要在maven-surefire-plugin的配置中,引用这个属性(当然我们也可以自定义这个属性的名字,那么就需要在maven-surefire-plugin的配置中引用我们自定义的属性名)

2023-01-05 15:06:40 5546 8

原创 非对称加密RSA公私钥pkcs1与pkcs8格式的转换

PKCS1是一把钥匙,PKCS8就是把这个钥匙放到一个盒子里,并在盒子上贴个标签对这把钥匙做了说明,比如采用的是什么算法,密钥长度等,所以PKCS8不仅仅支持RSA算法,还支持其他算法的密钥。最早openssl生成的公钥私钥默认都是pkcs1格式的,但是在后来的版本中,公钥默认为了pkcs8格式(私钥还是pkcs1格式,或许是为了迎合java吧,个人猜测)#通过ssh-keygen生成的私钥是pkcs1格式,但公钥是ssh特有格式(不是pkcs8也不是pkcs1)

2021-04-30 21:30:08 10649 3

原创 jmeter中用beanshell实现动态获取请求body进行加签

在jmeter压力测试的脚本编写时,经常会遇到接口中需要对请求体加生签的情况,这个时候可以用beanshell PreProcessor来实现对请求体的加签,但是有一点,就是需要我们拿到每个请求的body,如我们把每个请求的body都放到beanshell中,那么我们需要在每个请求(sampler)中都要添加一个beanshell,这样就有很多重复的工作要做,那么有没有办法能够动态的获取请求body,这样就可以只写一个beanshell前置处理器,然后就可以针对所有的请求实现加签?这里我做了一个demo..

2021-03-01 11:23:02 3621

原创 同是取悦用户,产品经理和研发人员可能会有不同的理解

看到公司大佬分享了一片文章“相信笨的力量”,是IDG资本翻译的外文,文章链接是https://mp.weixin.qq.com/s/qhmM2yXSVMZ0DmengMvQCw下面是我的读后感:同一句话,不同的人会有不同的理解比如文章中说到的“要坚持取悦用户”我能想到很多产品经理一定能从这里找到共鸣,他们会说,你看,我们从用户角度出发,设计了很多体贴和人性化的功能,而研发人员经常会说这个没法实现,那个没必要做,或者说这个要花费很大的时间和精力,但不见得有效果,而且可能会引入新的问题等等,总结下

2021-01-15 10:18:25 233

原创 记互联网创业公司二三事

1.在A公司时,有一次年会出去团建,CTO要大家摆一个公司的logo,然后居高临下照张像,结果大家乱做一团,一会你站这里,那站那里,半天也没站好,任凭CTO如何指挥,大家还是站的歪歪扭扭的。CTO有点着急了,让大家不要随便乱动,听他的指挥,他说谁动就谁动,结果效果并不好,因为局外和局内的人的视角是不一样的,再加上沟通理解上的障碍,比哪你说让他往左,他往右了,还有就是移一点,移一点是多远?有人步子大,有人步子小,所以搞了半天,还是不行。我在队里站了半天,也很着急,心想这么点简单的事,怎么就是做不好呢.

2021-01-14 18:49:47 188 1

原创 插入排序法的两种实现

插入排序法的实现,这里做了两种实现(思想是一样的):一种是从前向后排,把后面的无序序列,插入到前面的有序序列 一种是从后向前排,把前面的无序序列,插入到后面的有序序列废话不多说,直接上代码,下面代码已经经过调试,拿过去可以直接运行:#!/usr/bin/env python# -*- encoding: utf-8 -*-'''@File : sort_by_insertion.py @Contact : [email protected]@MTime : 202.

2020-12-22 10:37:47 374

原创 pkcs5 padding和pkcs7 padding的区别

pkcs5 padding和pkcs7 padding都是用来填充数据的一种模式。在ECB中,数据是分块加密的。如果需要加密的数据的字节码的长度不是块大小的整数倍就需要填充。使用PKCS5,填充时:要填充7个字节,那么填入的值就是0×7;如果只填充1个字节,那么填入的值就是0×1;恰好8个字节时还要补8个字节的0×08正是这种即使恰好是8个字节也需要再补充字节的规定,可以让解密的数据很确定无误的移除多余的字节。PKCS7和PKCS5的区别是数据块的大小;PKCS5填...

2020-11-20 18:51:42 18332

原创 记一次配置jenkins实现android app自动打包

1. 不能下载依赖包替换build.gradle中的repo地址为国内镜像地址,解决依赖包下载失败的问题maven { url 'https://maven.aliyun.com/repository/gradle-plugin' }maven { url 'https://maven.aliyun.com/repository/google' }maven { url 'http://maven.aliyun.com/nexus/content/groups/public/' }mav

2020-11-14 05:37:55 598

原创 记一次使用pycharm自带的命令行终端进行rebase导致的crlf转换为lf

问题描述:经历过一次针对Windows server的.net项目,在更改配置文件提交后并部署到服务器,导致服务启动失败,报错为加载配置文件失败,但是仔细对比和服务端和本地的配置文件 ,没有任何区别,然而本地是可以正常启动的,这就头疼了最终通过对比工具发现,本地与服务端的文件的不同之处是换行符不一样:解释:windows下的换行符为crlf(即\r\n),liunx和mac系统的换行符为lf(即\n)怀疑有可能是因为配置中的core.autocrlf=ture导致的,意...

2020-08-25 19:14:58 1006

原创 记一次nginx代理转发127.0.0.1引起的cookie未写入

公司有平台地址:a.civaonline.cn,部署了一个新的服务,分配域名:b.civaonline.cn为了实现sso登录服务,需要将token写入到一级域名*.civaonline.cn下,即统一在a.civaonline.cn登录,登录成功后将token写入cookie,这样在访问b.civaonline.cn时,就可以带上token自动验证通过,无需再次登录测试环境验证通过,但在发布到预发环境时,遇到了一个头疼的问题:预发环境在a.civaonline.cn登录成功后,访问...

2020-06-10 17:31:41 936 3

原创 jwt的解密和RSA签名验证

#!/usr/bin/env python# -*- encoding: utf-8 -*-'''@File : jwt_base64_test.py@Contact : [email protected]@MTime : 2020-04-26 11:32 @Author: buweiqiang@Version: 1.0@Desciption:标准的Base64并...

2020-04-26 18:46:45 3947 2

原创 接口安全:谈谈加密与签名的区别

非对称加密算法(如RSA),正确的使用方法是公钥加密,私钥解密。最近与三方合作伙伴对接接口安全方案,遇到一个同事跟我说,我们应该存储私钥,数据用私钥加密,公钥给三方,三方用公钥解密。我说不对,他给我看示例代码,里面明明是私钥加签,公钥验签。这种的误解,不仅造成了沟通上的困难,而且可能会导致接口设计并没有达到预设的安全目的。所以这里想专门讲一下加密与签名的区别加密:对一段明文进...

2020-04-24 18:11:40 10321 8

原创 Datetime转Datetimeoffset引发的对timezone和offset的认识:时区不等于本地时间与UTC时间的偏移

//C#中DateTime类型转为DateTimeOffsetDateTime thisDate = new DateTime(2020, 4, 19, 0, 0, 0);TimeSpan offset = new TimeSpan(-6, 0, 0);DateTimeOffset thisTime = new DateTimeOffset(thisDate, offset);...

2020-04-20 02:27:58 3158 1

原创 解决Selenium在chrome中播放视频报错:play() failed because the user didn't interact with the document first.

用selenium在chrome浏览器中自动化播放html5中的视频时,遇到如下报错:ErrorTraceback (most recent call last): File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/unittest/case.py", line 59, in testPartE...

2020-03-17 10:14:59 2797 2

原创 seleniumUI自动化chromedriver下载地址

selenium做UI自动化,如果浏览器是chrome,则需要下载对应chrome浏览器版本的chromedriver版本,下面提供两个地址:http://chromedriver.storage.googleapis.com/index.htmlhttp://npm.taobao.org/mirrors/chromedriver/...

2020-03-16 16:53:34 345

转载 sql连接查询:join, left join , right join, inner join, outer join

JOIN的含义就如英文单词“join”一样,连接两张表,大致分为内连接,外连接,右连接,左连接,自然连接。这里描述先甩出一张用烂了的图,然后插入测试数据。 测试数据表: CREATE TABLE t_blog( id INT PRIMARY KEY AUTO_INCREMENT, title VARCHAR(50), typeId INT);INSERT IN...

2020-03-11 14:47:17 312

原创 信息安全:关于收发室的故事

某集团公司的收发室,经历了大概这么几个阶段。第一阶段,初如阶段,甚至都不能叫收发室,其实就是一张桌子,信件都乱放在一起,任何人都可以过来找自己的信件,找到了就拿走。信件丢失的情况时有发生,这引起了公司的注意。第二阶段:保安看守,总部及各公司都增添了一个保安,有保安看着点,确实比以前好点了,但保安并不认识所有的人,有的人也会替别人拿,还是会丢东西。第三阶段:信箱上...

2020-03-02 23:36:50 275

原创 对小公司成长阻力的思考:重复犯同样的错误

小公司成长不起来的原因之一:不善于总结经验,吸取教训,对犯错误乐此不彼。反驳声音:怎么不能犯错误吗?没有人能不犯错误!小公司就是要不断试错,才有成长唉,解释一下,这句话的意思呢,不是说不能犯错误,而是不要一直犯错误,重复犯同样的错误!管理科学已经发展这么多年了,大多数创业公司还是会把别人曾经犯过的错误再犯一边,都忙着去填补低级错误的漏洞去了,哪有精力深入研究,在细分领域出成果?犯错误也应该是...

2020-02-13 12:48:18 378

原创 虽然这些bug可能不会被修复,但你仍然要提

在经历过的创业公司中,我经常看到下面这些情况:兢兢业业,认真负责的测试,很容易被认为是一个“事多”的人 审时度势,得过且过的测试,虽然人缘颇好,但因为经常背线上的锅,也是颇多怨词何为事多?就是有一些产品和开发看来没必要提的bug,但仍然被测试提了。什么样的bug是没必要提的bug,这里面恐怕颇多争议,我们来举几个例子:bug1:如果老师没有使用授课系统上课,但是布置了作业,进入到查...

2020-02-12 15:26:03 1196

原创 Shell 通过#和%截取变量

使用变量操作符 ${}1、单个#符:截掉左侧,非贪婪匹配${var#*.}该方式是从左开始第一次匹配到字符".",然后截掉左边内容(包括字符"."),返回余下右侧部分。$ var=/dir1/dir2/file.tar.gz$ echo ${var#*.}tar.gz2、双#符:截掉左侧,贪婪匹配${var##*/}该方式是从左开始最大化匹配到字符"/...

2020-01-22 11:07:03 372

原创 Shell 用ls查找文件和目录

查找所有目录ls -F | grep "/$"-F 文件类型(File type)。表示在每一个列举项目之后添加一个符号来标记文件类型。/ 表明是一个目录; @ 表明是到其它文件的符号链接; * 表明是一个可执行文件ls -l -F /usr/lib部分结果如下:-rw-r--r-- 1 root wheel 159264 7 4 2018 li...

2020-01-22 10:59:50 5012

原创 jenkins发送的html邮件中保留显示文本中的换行

在发送邮件的jenkins工程中,邮件内容中有一段版本说明是用户输入的文本,为了支持多行描述,用的是jenkins的文体参数,但是调试时发现输入的多行文本在邮件中被显示成了一行。如下为最后一行的html模板<tr height="21"> <td align="left" class="xl67" height="42" rowspan="2" ...

2020-01-17 17:41:45 1507

原创 如何测试才能保障系统没有问题

先来看一个段子:我的答案:无论怎么测试都不能保证系统100%没有问题再看看朋友群里的讨论:你看,每个人都有不同的视角,无论你的测试方案多周密,总有人会说有测试点没有覆盖到。这说明两个问题:引入更多的人进行测试是有收益的 测试用例是无穷的,你永远无法穷举所有的场景上述两点其是有矛盾的,为了追求覆盖更多的场景,我们需要加大投入,引入更多的人,设计更...

2020-01-07 14:13:46 606

原创 用jacoco统计代码覆盖率:不依赖ant的解决方案

参考网上的教程,用jacoco统计代码覆盖率,需要用到jacoco和ant,我原来的计划也是jacoco和ant的方案,后来研究发现其实不用ant也可以实现,省去了ant的安装和配置,更加灵活方便。相关软件下载:Sudo Wget http://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.6.3/binaries/ap......

2019-12-13 17:45:19 2181 2

原创 自动化测试之前,需要先谈谈质量和效率

测试的目的是保障质量,质量是效率的前提(非常重要)从发展的角度看公司对质量和效率的重视程度公司在初创阶段更注重效率:试错阶段,可以犯错误,100件事,犯错99次,1次成功即可 依赖个人和团队的能力公司在发展阶段会越来越重视质量:开始控制流程,减少犯错 从依赖个人能力到依赖有效的管理,减少个人犯错的影响 需求评审 Design review Code review ...

2019-12-05 15:30:26 665

原创 从工作杠杆率引申至对软件工程质量控制的思考

前几天读到一篇文章:为什么中国的 996 干不过美国的 955 (文未有链接)看过后有些感触,也进行了一些思考,由此引申到软件工程的质量控制,下面把自己的一些相法记录下来文中提到的一些观点,我是比较认同的关于工作的杠杆率,即单位工作时间产出的价值:业务如果靠销售驱动,杠杆率最低,运营其次,产品最高。所以你去看销售驱动的公司,往往有很多人,但是人均产值很低,比如地产,软件...

2019-11-22 18:58:03 176

原创 持续集成方案调研

要做持续集成,其实就是回答下面几个问题:什么是持续集成? 为什么要做持续集成? 我们的持续集成方案?第一个问题:什么是持续集成? 与持续集成相关的,还有两个概念,分别是持续交付和持续部署。持续集成指的是,频繁地(一天多次)将代码集成到主干。持续交付(Continuous delivery)指的是,频繁地将软件的新版本,交付给质量团队或者用户,以供评审。持续部署(continu...

2019-10-25 12:07:36 391

原创 Appium Mac环境搭建 Android SDK

1. 安装JDK(安装Android SDK需要先安装JDK)具体如何安装不说了,网上太多文章2. 安装Android SDK(mac)首先,下载android sdkfor mac,解压到某个目录官网下载地址:https://developer.android.google.cn/studiomac下推荐用homebrew安装android sdkbrew cask...

2019-10-24 12:31:59 798

原创 缺陷管理:不予修复和设计如此的区别:

引发问题:“设计如此”和“不予修复”的bug都是决定了不修的,那么用“设计如此”不就行了吗?不予修复:代表是bug,但是决定不予处理的问题 (白话:确实是个问题,但我就是这么任性,就是不修,不仅现在不修,就是以后也不打算修)例如:某些非常轻微的bug,但不影响功能使用的,或虽然对功能有影响但是仍然通过其他途径解决的,可以解决为不予修复“不予修复”与“设计如此”的区别:不予修复的前提...

2019-10-21 18:16:42 1303

原创 缺陷管理:说一说bug的状态和解决方案

经历过几家创业公司,发现大部分测试和开发人员,包括项目经理,对于bug状态与解决方案竟然傻傻分不清楚,导致bug管理与统计上的混乱,在费尽了我的三寸不烂之舌团队成员解释之后,索性将这个问题做个整理写下来,希望对这些基本概念有所普及,现在大部分测试人员只关心学习高大尚的自动化测试,性能测试技术,却对一些基本概念的理解却是模糊不清,甚是让我感到担忧,希望本文对于入行测试的初学者,以及已经走在成长路上的......

2019-10-21 18:14:39 6549 1

apache-jmeter-3.1-with-pluginmanager.zip

jmeter 3.1版本,Apache JMeter是Apache组织开发的基于Java的压力测试工具。用于对软件做压力测试,它最初被设计用于Web应用测试,但后来扩展到其他测试领域。 它可以用于测试静态和动态资源,例如静态文件、Java 小服务程序、CGI 脚本、Java 对象、数据库、FTP 服务器, 等等。JMeter 可以用于对服务器、网络或对象模拟巨大的负载,来自不同压力类别下测试它们的强度和分析整体性能。

2019-06-26

空空如也

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

TA关注的人

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