自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(86)
  • 收藏
  • 关注

原创 【问题】java查询MySQL时,mysql查询tinyint类型 的数据时,0会被转为false,1或以上会转为true

—可解决java查询MySQL时,mysql查询tinyint类型 的数据时,0会被转为false,1或以上会转为true的问题。在做接口测试的数据库断言时,发现type字段断言总是失败,期望是0,打印数据库实际值是false。

2024-04-22 19:12:48 247 1

原创 【接口自动化】数据验证|响应断言、数据库断言

利用REST-assured内置Gpath表达式取出响应数据(大多数情况是json)中的关键字段的值,通过TestNG的Assert类,断言这些关键字段的值是否符合预期。a. 表数据验证首先得明白这个接口的基本业务,会影响到哪些表,哪些字段的数据,然后才能准备查询sql去有针对性的查数据。b. 并不是所有用例的执行都会操作数据库,影响到表数据,因此只有影响到了表数据的用例,才准备查询脚本。数据库断言要考虑成本,比如一条注册用例,注册完要查询数据库中的每个字段对比么?响应头/响应字段对比。

2024-04-22 19:06:46 145

原创 【接口测试】做了鉴权的接口/业务关联的接口怎么测试

如果是通过会话id(JSESSIONID)来实现鉴权的,那么先调用完登录接口——》拿到它返回的这个数据——》存储起来——》后面再调用其他接口的时候直接带上这个数据过去就可以了。如果是通过token来实现鉴权的,那么同样只需要在调用完登录接口——》拿到它返回的这个数据——》存储起来,后面操作同上。a接口调用完——》从响应中取出b依赖的这个参数——》保存起来——》b调用的时候,取出这个信息——》当做参数传过去即可。先找开发人员确认,再调用需要鉴权的这些接口怎么携带这个鉴权的信息。

2024-04-22 18:47:32 434

原创 【项目思考】项目复盘|不是项目经理一个人的事情

把每个阶段中的具体工作进行分解,才能分析出每一项工作的进展是否顺利,问题点在哪、以及如何更好的优化。给pm当了2年小助理,现在没有复盘环节的项目我总觉得少了点啥......要有专人控制时间和记录要点,开会最忌讳的就是不着边际地开得又臭又长。记录要点也是一种会议成果的输出,有利于总结经验并开展下一步行动。参与人:测试、产品、开发、pm...保守估计这些人。,控制每个部分的时间很重要,另外。主持人:pm或anyone..每个人自问以下⬇️,然后阐述。心情:坦诚剖析、平等且真实。哪些是我们可直接行动的?

2024-04-21 23:22:04 278

原创 【测试总结】测试时如何定位一个bug?是前端还是后端?

作为一道面试题,它算高频了么?我面试别人问多挺多次,我也被面试官问过...相对来说多少能看出一点测试经验,实际测试中的排查问题能力...(1):查看接口请求参数和响应结果。如果请求没发出或参数不正确,为前端的bug如果请求url和传参都正确,响应数据不正确或者没有响应,为后端bug后端返回了响应也是正确的,但是前端没有正确显示,一般就是前端问题(2):查看后端服务日志有无,以及错误日志信息。还有一些常见的前端问题,也可以在浏览器控制台输入js代码调试进行分析查看报错日志,通过日志分析问题点。

2024-04-21 23:02:57 822

原创 【测试思考】做比开发、产品还熟悉业务的测试

当然是自己动手啊,作为测试,求助pm,产品,开发,运营,甚至......很大概率得不到明确的结果,anyway 总得自己试过了明确总结了,才能相信。有时一个边缘功能很久很久不改动,那再需要测通它时,经常需要对接多方,有的请假了有的调走了有的不清楚更甚者有时候一个功能找不到清楚的人.......但也是这样一份工作,给了我一个很大的冲击提醒:我必须充分清楚业务及交叉业务的每一个细节,才能第一时间给出解决办法,不误导用户。梳理完的脑图,被开发产品各要走了一份。不止做测试,做产品,做pm,做产品的“负责人”

2024-04-18 11:53:48 220

原创 【测试思考】当我给互联网姐妹解读电商大促规则

在我想办法让更多人理解这套优惠规则并做出总结时,我想到了我20年初做的优惠券项目,很难说是谁帮助了谁(优惠券的项目让我对一套优惠流程能快速做出反应,tb的每年活动解读与凑单让我对一些场景下的测试用例思考的更全面些)下单前,使用各种品类的优惠券抵扣,满减券,商品券,可叠加的,互斥的,下单支付后产生积分,积分也能抵扣,还可以用账户余额.......有天中午,我在外卖app点外卖时,想到了tb,这不是一个已知的,相对复杂的下单场景么,于是就有了我历时仨小时的用例评审...测试的思维是什么呢?

2024-04-16 12:09:18 296

原创 【测试资源】测试新手可放心冲的几个学习网站,团队分享学习清单

当你老板让你带新人,面对应届生实习生,你从何下手?当你作为测试tl,怎么培养测试新人?我做组员时,测试团队有组织课程学习,开发团队有定期组织每周技术分享,但学习课程不应用时候容易理解不深刻,学过就忘我做组长时,除了组织课程学习,提议分享团队中测试案例以及延伸来的学习总结,和人分享输出是更好的输入。

2024-04-16 11:32:54 191

原创 【接口自动化】参数化替换

比如需要token鉴权的业务流当我们用使用postman/jmeter等工具时,将的一些响应信息提取出来,放到的请求中,来完成某个业务流的接口测试。

2024-04-08 14:14:16 561

原创 【性能测试】性能测试自用总结

采用吞吐量来度量并发系统的性能的主要原因,一般而言,吞吐量是一个比较通用的指标,两个具有不同用户数和用户使用模式的系统,如果其最大吞吐量基本一致,则可以判断两个系统的处理能力基本一致。0-50-100-150-200-250-300 如果发现在150的时候正常,在200的时候报错(或性能(tps)不上升反而下降,即拐点区间),这个得到区间【150,200】在给系统施加低压力时,查看系统的运行状况并记录相关数据作为基础参考,这些数据将主要用于性能调优后的对比,以确定调优的有效性。

2024-04-08 13:04:09 624

转载 【服务】什么是分布式

分布式(distributed)是指在多台不同的服务器中部署不同的服务模块,通过远程调用协同工作,对外提供服务。集群(cluster)是指在多台不同的服务器中部署相同应用或服务模块,构成一个集群,通过负载均衡设备对外提供服务。原文链接:https://mp.weixin.qq.com/s?__biz=Mzg3MjA4MTExMw==&mid=2247484758&idx=1&sn=4195022c137e260089da526caf27aa0e&source=

2024-04-08 11:02:35 23

转载 【网络】什么是RPC

RPC 是指计算机 A 上的进程,调用另外一台计算机 B 上的进程,其中 A 上的调用进程被挂起,而 B 上的被调用进程开始执行,当值返回给 A 时,A 进程继续执行。调用方可以通过使用参数将信息传送给被调用方,而后可以通过传回的结果得到信息。而这一过程,对于开发人员来说是透明的。就像后厨的例子一样,服务员把菜单传给后厨,厨师告诉备菜师和洗菜师开始工作,然后他等待他们完成工作。备菜师和洗菜师工作完之后,厨师开始炒菜。这个过程对于服务员来说其实是透明的,他不需要关心到底后厨是怎么做菜的。

2024-04-08 10:56:33 665

原创 【服务】什么是反向代理?

正向代理(forward proxy):是一个位于客户端和目标服务器之间的服务器(代理服务器),为了从目标服务器取得内容,客户端向代理服务器发送一个请求并指定目标,然后代理服务器向目标服务器转交请求并将获得的内容返回给客户端。这种代理其实在生活中是比较常见的,比如科学上网技术,其用到的就是代理技术。有时候,用户想要访问某国外网站,该网站无法在国内直接访问,但是我们可以访问到一个代理服务器,这个代理服务器可以访问到这个国外网站。

2024-04-08 10:39:40 540

原创 【接口】HTTP(4)|Session、Cookie、token有什么区别?

这一切判断依据,除了固化在 CS 两端的一些逻辑之外,整个信息是自包含的。这才是真正的无状态。cookie是一门客户端技术,一般由服务器生成返回给浏览器客户端来保存的,并且cookie是以键值对的形式保存在浏览器客户端的,每一个cookie都会有名称,值,过期时间...在项目中比较常见的有:1、登录记住用户名 2、记住用户浏览记录...客户端将token保存起来,下次请求时,带着token,服务器收到请求后,然后会用相同的算法和密钥去验证token,如果通过,执行业务操作,不通过,返回不通过信息;

2024-04-05 12:00:05 1106

原创 【接口】HTTP(3) |GET和POST两种基本请求方法有什么区别

GET和POST能做的事情是一样一样的。HTTP给汽车运输设定了好几个服务类别,有GET, POST, PUT, DELETE等等,HTTP规定,当执行GET请求的时候,要给汽车贴上GET的标签(设置method为GET),而且要求把传送的数据放在车顶上(url中)以方便记录。如果你用GET服务,在request body偷偷藏了数据,不同服务器的处理方式也是不同的,有些服务器会帮你卸货,读出数据,有些服务器直接忽略,所以,虽然GET可以带request body,也不能保证一定能被接收到哦。

2024-04-05 11:47:04 1238

原创 【接口】HTTP(2) |请求方法及状态码

(Resource Representational State Transfer)表现层状态转移-架构约束条件和原则-风格用URL定位资源,用HTTP动词描述操作。

2024-04-04 19:28:07 555

原创 【接口】HTTP(1)|请求|响应

HTTP协议是基于TCP的应用层协议,它不关心数据传输的细节,主要是用来规定客户端和服务端的数据传输格式,最初是用来向客户端传输HTML页面的内容。Hyper Text Transfer Protocol(超文本传输协议)用于从万维网(就是www)服务器传输超文本到本地浏览器的传送协议。HTTP是基于请求与响应模式的、无状态的、应用层的协议。scheme:协议,如http,https,ftp等。用以表示网页服务器HTTP响应状态的3位数字代码。请求行:请求方式 + url + 协议。TCP——传输层协议。

2024-04-04 13:23:55 1424

原创 【Java】抽象类和接口的区别

想到我学java的契机还是一位研发leader (暂时称为m吧)的鼓励,那时候所在公司的业务线还没有代码写的自动化测试框架。我总扒着对接的后端一起讨论,有一次m经过我俩,当时我俩不知道说什么说到了自增自减上,m停下突然说了一句 “你不是学过c语言么,要不也学学java,正好这么多人随便问......”

2024-04-02 13:30:16 417

原创 【移动端】手机APP兼容性测试记录总结

(3)1080*2400:一加8T、vivo S7、OPPO Reno5、荣耀30、小米10青春版、荣耀X10、荣耀Play4T Pro、OPPO A92s、Redmi K30 Pro、华为nova7、三星Galaxy S20 Ultra、荣耀30 Pro 5G、荣耀V30、荣耀V30 Pro、vivo S5、OPPO R17。(6)1080*2340:锤子坚果R2、荣耀30Pro、魅族17、魅族17Pro、iQOO U1、华为畅享20Pro、华为nova7 Pro、红米9、realme X2。

2024-03-25 18:28:00 77

原创 【测试思考】设计测试用例时,你在想什么

突然想写这篇文章是因为,前两天看到一篇文章然后想起件小事儿 ..想到在2020年上海爆发疫情后,开始频繁时候买菜软件,在一个深夜从某团紧急挑选加购商品,准备付款时,发现自己账户还有一张满减优惠券,挺高兴的。想起来还有一些面包没加购,于是又退出购物车页,回去挑选,终于都选好了,一件确认订单时,发现优惠券没用上......于是到优惠券页面,发现那张券还在【未使用】一栏,再研究发现是过期了,可是【已过期】一栏并没有它,放在以前我索性就不会下单了,无奈食材不好抢,只是气呼呼下单后睡了......

2024-03-23 13:52:16 1045 2

原创 【Charles】Charles做接口测试与断点测试

1、抓包捕获到对应的请求2、选中请求右键,选择“Breakpoints” --- 即可将这个接口加入断点的配置里-- 注意:默认是requests和response都会触发断点。3、浏览器里再次触发这个接口请求4、Charles跳转到断点的页面并显示请求消息5、点击Edit requests,修改请求消息,然后点击“Execute”,执行这个请求,查看页面显示结果6、响应消息也会触发断点,断点页面显示响应的信息;7、点击Edit response,修改响应消息内容;

2024-03-22 20:33:38 395

原创 【Selenium】隐藏元素的定位和操作|隐藏与isDisplay方法

首先 selenium 是无法操作隐藏元素的(但是能正常定位到),本身这个框架就是设计如此,如果非要去操作隐藏元素,那就用 js 的方法去操作,selenium 提供了一个入口 可 以 执行 js 脚 本。隐藏元素可以正常定位到,只是不能操作(定位元素和操作元素是两码事,操作元素是 click,clear,send_keys 这些方法。js 和 selenium 不同,页面上有的元素(在 dom 里面的),都能正常的操作, 可以详看前面的。隐藏元素用普通元素定位方法——可以定位到!

2024-03-21 12:55:33 1368 1

原创 【工具】mac 环境配置

ruby环境:curl -sSL。

2024-03-20 07:50:17 628

原创 【Selenium】常用断言及Assert常用方法

二、断言——Assert(继承于Object)的一些方法。比如密码错误 出现一个【错误提示】通过url断言的两种方式。——如果不相等就报错。

2024-03-19 18:22:18 372

原创 【Charles】开启charles后,网络用不了,解决证书安装问题

点击安装后,按照提示安装并授权信任即可。

2024-03-18 18:55:55 478

原创 【Java】POI解析excel

Apache POI是Apache软件基金会的开放源码函式库,POI提供API给Java程序对Microsoft Office格式档案读和写的功能。poi-ooxml能解析xls,xlsx。poi能解析word、ppt、excel、xml等office软件。

2024-03-17 13:43:49 581

原创 【Java】容器|Set、List、Map及常用API

在Java中所有的容器都属于Collection接口下的内容1、Set——这种容器的特点: 存储的数据不能重复. 自动去重.2、List——这种容器和数组差不多, 优势是不定长. 随便加.3、Map——这种容器是一对一对的存 ,就像我们存电话号码的时候. 肯定是”名字-电话”这样存储. 找电话用名字找就行了。

2024-03-16 10:37:18 1587

原创 【Java】String字符串及常用API

JAVA官方推荐重写这个方法,默认的太丑了——>object中默认的toString():包+类@内存地址 如果没有包就是:类@内存地址。返回指定子字符串在此字符串中第一次出现处的索引 str.indexOf()StringBuilder是可以改变的字符串. 都在原来的基础上进行操作. 所以不会产生内存浪费.直接打印一个对象,默认打印对象,自动执行这个对象中的toString()方法。比如字符串的拼接,不是在原字符串的内存空间上修改,此方法返回的数组包含此字符串的子字符串。字符串比较 equals。

2024-03-16 10:02:10 381

原创 【Java】梳理总结:类与对象|面向对象三大特征|接口 抽象类

子父类中出现了一模一样的方法。修饰符、返回值、方法名、参数都必须一模一样。子类和父类中的方法的声明完全一致。

2024-03-15 13:40:20 1828

原创 【JSON】JSON解析 fastJson框架

JSON(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式。​简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。​易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。

2024-03-13 19:02:26 1299

原创 【Java】关于equals 和 ==

= 是运算符;判读左右两端的数据是否一致, 比较基本数据类型比较的是值,比较引用数据类型比较的是地址值;默认判断的是两个对象的内存地址是否一致,一般用在基本数据类型上。

2024-03-13 18:43:02 449

原创 【java】内存及参数传递问题

先进后出——因为 main方法最先进入,最后出去,不然先出去其他方法就没办法执行了。java使用的是值传递,栈空间里面的变量值(地址值或者值)数据区:常量池(字符串)和静态变量。值传递: 把变量的值作为参数进行传递。引用传递:直接把变量作为参数进行传递。两个引用(变量)指向同一个对象。调用的方法都会进去到栈里面去。1、堆溢出 不停的创造对象。堆:主要存放对象 (包括。,以及基本数据类型的变量。2、栈溢出 比如递归调用。局部变量、方法都在栈中。

2024-03-12 18:52:31 22

原创 【Java】数组及常见异常

数据类型 [] 数组名 = {...};静态初始化:常用数组类型[][] 数组名 = {{值1,值2..},{值1,值2..},{值1,值2..}};动态初始化:第二个括号里的长度可填可不填,因为有时候一维数组的长度不一致1. 第一种,地址值是null,没放入具体的值,null占位 默认值;数据类型[][] 数组名 = new 数据类型[二位数组的长度][];2. 第二种数组类型[][] 数组名 = new 数组类型[二维数组的长度][一维数组的长度];⚠️二维数组的长度只看外层的长度。

2024-03-11 18:07:05 360

原创 【数据库】软件测试之MySQL数据库练习题目

12、查询学过‘黄观’老师所教的所有课的同学的学号、姓名 ---包括 不止学过黄观老师的课。3、查询每门课程的平均成绩,结果按平均成绩升序排列,平均成绩相同时,按照课程号降序排列。14、查询 课程编号‘2’ 的成绩 比 课程编号‘1’ 课程低的所有同学的学号、姓名。13、把 ‘SC’ 表中 ’黄观‘ 老师教的课的成绩都更改为此课程的平均成绩。4、查询平均成绩大于85的所有学生的学号,姓名和平均成绩。16、查询平均成绩大于60分的同学的学号和平均成绩。15、查询没学过“黄观“老师课的同学的学号、姓名。

2024-03-10 19:23:51 258

原创 【数据库】索引 视图 触发器 分页查询

比如,删除student表数据的时候,把被删数据保存起来,以便后面进行数据恢复。可以把一段sql语句保存起来,以后进行查询的时候,可以从视图中查询数据, 相当于一张结果表。、当数据量小的时候,索引看不出来效果,当数据量很大的时候,索引会显著提高查询速度。触发器可以监控数据库里的表,当表被执行增删改操作的时候,可以执行一些固定的操作。当给表添加索引之后,新插入一条数据,就会让索引进行重新排列。所以,如果频繁的增加或者删除数据,此时 索引的效率不会很高。在创建表的时候,主键会自动的被设置为索引。

2024-03-09 16:12:04 829

原创 【数据库】多表查询:子查询|关联查询 inner join 、left join、right join

比如,下面【部门】表里的主键 拿到【员工】表里做普通字段(外键)员工 部门1员工,XXX,1部门 1部门,武当派2员工,XXX,2部门 2部门,峨眉派3员工,XXX,1部门 3部门,明教4员工,XXX,2部门设计主外键关系的方案1、图形化操作:(数据库管理工具)2、写sql语句constraint 约束名 foreign key (外键列名) references 对方表(列表)

2024-03-09 15:51:59 458

原创 【数据库】聚合函数|group by分组|having|where|排序|函数 关键字的使用

where 子句的作用是在对查询结果进行分组前,将不符合where条件的行去掉,即在分组之前过滤数据,条件中不能包含聚组函数,使用where条件显示特定的行。having 子句的作用是筛选满足条件的组,即在分组之后过滤数据,条件中经常包含聚组函数,使用having 条件显示特定的组,也可以使用多个分组标准进行分组。-- ⚠️如下:‼️查询某个表的数据的同时去修改/删除该表的数据,直接这样操作不行,mysql不允许。——如果数据重复 保留最小的id的数据,如果数据不重复,保留该数据。

2024-03-09 14:54:24 1555

原创 【数据库】数据库学习使用总结DDL DML 及常用的条件查询语句

1、DB——>存储数据的2、DBMS——>用来管理数据的。

2024-03-08 16:51:42 640

原创 【UI自动化测试】如何提高UI自动化脚本的稳定性,

元素定位:不使用绝对坐标点击,否则在不用的尺寸屏幕上无法兼容;尽量用相对路径xpath表达式定位。脚本失败后可以加入testng的重试机制,提高用例的稳定性;用例解耦、减少用例之前的互相依赖,避免影响其他用例的执行;用例执行过后对测试场景还原,避免影响其他用例的执行;使用等待:元素等待优先使用自定义显式等待;多用 try catch 捕获异常。PO模式,将页面对象和用例分开来。

2024-03-07 13:23:33 295

原创 【Selenium】一篇说清楚三大等待❗️硬等待 隐式等待 显示等待

WebDriverWait(driver,5)------表示:等待5秒,还有第三个参数,不传的话默认500毫秒,即:每0.5秒轮训查找一次。每隔一段时间扫描一次页面,检查元素是否满足等待结果条件,比如查找元素,则检查元素是否存在,不存在则继续等待,直到找到或超时。缺点:设置是针对全局的,在WebDriver实例整个生命周期有效,但并不是所有的元素都需要等待。long time:等待时长数字, TimeUnit unit:等待时长单位。如:设置等待时间为5秒,在第3秒找到元素,不再继续等待。

2024-03-07 06:49:30 704

java基础知识点总结思维导图

包含java基础:数据类型,运算符,循环控制语句、方法、内存、面向对象、String、集合、Maven项目、Properties、testng等

2024-03-16

空空如也

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

TA关注的人

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