自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 关于编写测试用例的一些思考

测试用例是QA同学的基本功,每个人都有一套编写测试用例的体系,本文是作者结合自身的工作经验以及阅读一些测试相关的书籍后的一些看法,欢迎大家一起讨论学习。

2024-03-02 14:42:53 415

原创 后端开发常犯的问题(Java版)

比如新用户可以选择领取礼品的场景,一般分为两个接口实现,1)用户是否为新用户,若为新用户则返回可以领取礼品;2)用户选择礼品后给用户发放礼品。有些开发会只在查询接口中做用户是否是新用户的校验,而在真正的发奖接口中不做校验。这样会有资损的风险,用户可以抓包直接获取到发奖接口给用户领取新用户礼品,所以在与权限相关的场景中,所有的接口都需要做权限的校验。1.依赖client服务的并发限制,使用client加锁保证调用接口串行,服务端并没有加锁,接口超时等异常场景client重试,服务端产生了并发问题。

2023-04-18 19:47:27 3961

原创 TestNG - dataprovider

TestNG的Test注解提供了一个参数dataProvider,可以满足我们给测试用例提供个性化的数据格式,使用方法。

2022-10-27 20:42:08 844

原创 TestNG - 运行失败的test

testNG 重试失败的case有两种方式:1、所有case全部执行完后,主动触发执行所有失败的case2、case失败后立即重试

2022-08-26 16:36:24 768

原创 Java new一个对象

不同虚拟机的运行时数据区可能略微有所不同,但都会遵从 Java 虚拟机规范, Java 虚拟机规范规定的区域分为以下 5 个部分:程序计数器(Program Counter Register):当前线程所执行的字节码的行号指示器,字节码解析器的工作是通过改变这个计数器的值,来选取下一条需要执行的字节码指令,分支、循环、跳转、异常处理、线程恢复等基础功能,都需要依赖这个计数器来完成;Java 虚拟机栈(Java Virtual Machine Stacks):用于存储局部变量表、操作数栈、动态链接、方法出口等

2022-06-05 15:46:03 3584

原创 org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name

网上很多都是说没有写注解,有些情况是没有写注解,但是有些时候不是因为这个原因,可能是我们的代码中出现了bug导致的,可以看下后面具体出错的地方,有提示具体是哪里有问题我遇到的情况就是数据库字段的类型写错了,如下图所示,有具体的提示...

2022-04-25 21:27:55 628

原创 Java 对象、变量的存储及初始化

1. 参考https://www.hollischuang.com/archives/2509《Java编程思想》2. Java内存结构3. 各种数据存储在哪里3.1基本类型Java有9种基本类型(boolean,char,byte,short,int,long,float,double,void),存储在堆栈中,不用new来创建变量,而是创建一个并非是引用的“自动”变量3.2 new出来的对象存储在”堆“中3.2.1 StringString对象是不可变的3

2022-02-20 15:04:52 536

原创 MySQL插入数据报Duplicate entry ‘xx‘ for key ‘PRIMARY‘...

1.报错详情2.出错原因分析重复的是表的主键,设置的是自增的,而且sql中并没有设置这个字段的值,为什么会重复呢?1. 查看了下AUTO_INCREMENT的值是2147483647,再插入数据时应该是在此基础上+1呀2. 该主键字段数据类型是int,2147483647正好是最大值,已经超过最大值了所以就出现了这种情况3.解决方法在测试过程中,多次遇到这种情况,不知道是谁,中间隔了一大串的数字,然后插入一条很大的id,库就会很快出现这种假满的情况1.将这些数据删除2.修

2021-02-21 16:57:12 695

原创 枚举的使用

枚举的使用定义一个枚举类枚举常用方法介绍在其他地方使用枚举定义一个枚举类enum Color{ RED,GREEN,BLUE}1.如果想要定义自己的方法,必须在enum实例序列的最后添加一个分号;同时,必须先定义enum实例(在enum实例之前不能定义任何方法或属性)2.我们有意识地将enum的构造器声明为private的,即使不声明为private,我们只能在enum定义的内部使用其构造enum实例。public enum Oxwitch{ WEST("1"), NORTH("2"),

2020-10-11 22:21:19 152

原创 互联网常用架构学习

随着业务逻辑越来越复杂,很多公司都开始用起了微服务,架构也和上图大同小异,本文主要记录下对此架构学习的笔记CDNCDN,全称Content Delivery Network,即内容分发网络。可以加快用户的访问速度,原理就是使用缓存。CDN是部署在各地的网络运营商的机房,所以是需要付费才能使用的。参考:https://www.jianshu.com/p/ce98fbff39ac...

2020-07-10 18:43:41 273

原创 h5页面图片未加载出来问题排查

h5图片未加载出来问题排查步骤:1.排查是否时网络问题,保证网络正常2.是否设置了节省流量的模式,不加载图片3.内存/缓存太多,导致图片加载不出来这些情况都没有问题的话,再进行下面的步骤:4.抓包,查看接口是否返回了图片5.查看图片链接配置是否有问题(可能以前的图片都存储在这个地方,后来换了存储图片的服务)如果看了这些还是有问题,可能就是h5有问题了:6.是否发生了js阻塞,js有问题,后面代码没有执行,图片没有渲染排查了以上问题,还是没有发现问题,也可能是版本的问题:7.我们h5嵌入的

2020-07-09 15:47:40 5012

原创 Robolectric之Shadows

官网介绍地址:点这里本文根据自己平时的使用对官网文档的一种理解和翻译shadows出现的原因Robolectric虽然创建了一个包含了真实的Android框架代码的运行时环境,但是还是有一些限制:Native code - Android native code cannot execute on your development machine. (Android本地代码不能在我们的开发计算机上执行)Out of process calls - There are no Android sys

2020-06-11 12:00:24 1893

原创 Robolectric常用方法

标题1.Robolectric官网第一个例子1)页面<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <Button

2020-06-01 18:39:12 909

原创 org.mockito.exceptions.misusing.InvalidUseOfMatchersException: Invalid use of argument matchers!

在写Android 单元测试的mock时,一直报这个错误org.mockito.exceptions.misusing.InvalidUseOfMatchersException: Invalid use of argument matchers!8 matchers expected, 7 recorded:-> at......This exception may occur if matchers are combined with raw values: //incorre

2020-05-27 14:46:44 4539 1

原创 Vue入门笔记(二)——路由

1.说明本文写的主要针对0.7.X版本的vue router。官方介绍:Vue Router 是 Vue.js 官方的路由管理器。它和 Vue.js 的核心深度集成,让构建单页面应用变得易如反掌。对比:传统的页面应用,是用一些超链接来实现页面切换和跳转的。在vue-router单页面应用中,则是路径之间的切换,也就是组件的切换。2.创建一个简单的路由1)route-config.js// 需要的路由关系一般都写在route-config.js文件中//引入组件,Home和About是两个自

2020-05-16 17:14:21 291 1

原创 Module parse failed:Unexpectedtoken (1:0)You may need an appropriate loader to handle this file type

现实又给我上了一堂残酷的课,之前搞robeletric的时候在环境上就一直出问题,这次开始整vue又在环境上浪费了这么久的时间我的node直接就下载了最新版本的,所以在运行别人的项目时报错了,然后我竟然没有想到先看看是不是环境的问题,又在网上一通找,然后修改了一堆东西,还是不行这个时候在网上看到说最新版本的node跟很多东西都不兼容,8.几的是比较稳定的,然后就换了8.几的node,项目起来了过来几天,我看另一些模块的时候,启动的时候报了如下错误:ERROR in ./demo03/src/app.

2020-05-15 18:09:04 8027

原创 测试开发面试总结(一)

面试题自我介绍测试用例设计微信发红包页面刷不出来问题排查算法题有序数组插入数字Java基础知识对多态的理解==和equals的区别重载和重写的区别hashmap和hashtable的区别接口和抽象类的区别arraylist与linklist区别数组和链表的区别Linux命令查看日志某个关键字的前后50行网络基础知识tcphttp header包含的字段测试...

2020-05-13 17:45:15 1009

原创 Vue入门笔记(一)——目录结构

本文中用到的项目来自:https://github.com/keepfool/vue-tutorials第一次接触vue,记录下自己学习成果目录结构项目的效果2. 各个目录内容1)main.js 项目的入口文件,创建了根vue实例,并引入根组件app.vue。每个 Vue 应用都是通过用 Vue 函数创建一个 Vue 实例开始的(一个 Vue 应用由一个通过 new Vue 创建的根 Vue 实例,以及可选的嵌套的、可复用的组件树组成)main.js 和 index.js 在vue项目中是

2020-05-11 18:42:49 268

原创 RuntimeException: Method ___ not mocked

前言: 在用Robolectric做单元测试时,环境的解决就花费了我好长好长一段时间,差点就绝望了,准备放弃了在最开始报出了如下的错误:[Robolectric] com.tavultesoft.kmea.packages.PackageProcessorTest.test_load_GFF_KMP_keyboards: sdk=28; resources=BINARYjava.lang.R...

2020-04-02 17:19:41 1154

原创 移动端测试踩过的坑

1. 接口调用时上传参数值不正确这个虽然在功能测试的时候足够细致的话也是可以被发现的,但是稍微不留意就可能漏掉(不知道大家关于app涉及到接口的调用是怎么测试的,欢迎大家一起交流)1)场景1: App中有一个填写信息的页面,我们填完后点击提交按钮,通过接口把这些信息上传到服务器通常我们会认为填写完信息提交后,查看下相应的页面展示或者抓包看下上传的参数值,就可以验证APP调用接口时传参是否有...

2020-04-02 15:01:40 355

原创 接口测试中常见问题

在进行接口测试的过程中,出现问题比较多的情况是在接口有多个判断条件/规则,或者接口某些情况会影响其他功能/其他功能在某些情况下会影响接口的值。有多个判断条件或规则时,如果同时满足多个条件,各个条件是否有优先级,生效的是否是优先级高的有关联功能,在满足条件时,另一个功能是否变化;或另一个功能满足触发此功能,是否被触发(新增的功能可能和原来的功能有相互影响)一个条件被触发了才会出现某种情况,有...

2020-01-02 14:41:00 4196 1

原创 Appium自动化测试——测试流程

1.启动appium service有多种启动方式,在自动化测试中最长使用的就是AppiumDriverLocalService,可以设置使用的ip,port等。 //在运行时找不到appium,可以手动添加appium的位置 System.setProperty(AppiumServiceBuilder.NODE_PATH , "/usr/local/bin/...

2019-12-25 18:32:03 1288

原创 @RequestParam和@RequestBody的使用

在写一个小demo时出现一个问题,写了一个post restful接口,前端用ajax调用是没有问题(默认情况下浏览器的ajax会添加content-type:application/x-www-form-urlencoded的请求头),但是用postman调用参数一直解析不出来,反复检查代码无果,具体现象如下。//修改前 @ResponseBody @RequestMapp...

2019-12-24 13:23:33 151

原创 APP测试点总结-初级版

一、测试点总结页面所用的功能点要保证是可以正常使用的(最基本的)。 可以尝试多次点击,点击其他功能后再过来验证这个功能仍然是可以正常使用的,比如APP有多个tab标签,来回切换这个tab,保证正常切换。 数据一致性。同一个数据,在不同的页面应该保持一致,在测试的过程中一个数据在多个页面展示是很常见的,比如在外面有一个数据,进去详情页还会再展示一次。 返回功能。页面返回功能,页面的返回按钮,...

2019-10-24 09:40:12 421 1

原创 idea maven 私服代码下载失败

看了网上很多的教程都没有解决问题,然后看了下配置,我用的maven是默认的,然后就下载了一个maven,然后使用这个maven就好了,具体是什么原理我也不知道,反正就好了。...

2019-10-22 09:53:45 856

转载 移动App测试一些崩溃原因及触发崩溃的场景

移动App测试与传统台式机测试相比有一定的复杂性。这些复杂性可以被分类为:  环境(大量的设备,各种移动OSs,适应频繁OSs变化) 。  设备(触摸式和非触摸式设备,有限的内存容量,电池耗电量) 。  网络(不同的网络和运营商,在不好或无网络的情况下的App行为,离线支持) 。  可用性(方向,触摸,多触摸,缩放,分页和导航的局限性,各种干扰,如来电,来电短信,闹钟,和低电量警报) 。...

2019-10-21 13:35:42 914

原创 Charles修改接口返回数据和关闭——mapLocal

在客户端测试的时候,会遇到想要接口返回一些特殊的数据,如果通过服务端修改的话代价就太大了,Charles的一个功能就解决了这个问题。第一步,选中你想要修改返回结果的接口,右键,点击 saveResponse ,然后选择一个位置保存它。第二步,选中你想要修改返回结果的接口,右键,点击Map Local,然后在Local Path中选择你刚刚保存的那个文件,点击ok就好了...

2019-09-19 15:17:51 3142

原创 openstf探索(二)—— 登录代码解读

好记性不如烂,看了几天stf的源码,记录总结一下。首先说下stf的启动启动命令是:stf local, 在终端输入该命令,项目就启动起来了。 stf是该项目设置的一个命令,就好像npm一样。在终端输入:stf --help 就可以看到都有哪些命令/bin 是项目的启动文件,查看文件内容,最终我们定位到了lib/cli/index.js。然后,不知道在哪里配置的,或者是什么机制,...

2019-06-27 23:07:55 1925

原创 openstf探索(一)—— 安装篇

第一次接触stf,虽然现在对它还是不太了解,先记录一下。1.首先安装了homebrew,是mac本中一款很好用的管理安装软件的应用。2.安装依赖依赖的东西有:node.js,Android-SDK,jdk,rethinkdb,graphicsmagick,zeromq,protobuf,pkg-config,yasm这么多依赖可以直接在终端中输入,homebrew就会帮我们安装了:...

2019-06-10 22:11:22 1268

原创 SQL小知识总结(一)

1. count 和 sum 的区别count 是计算有多少条数据,count(*)计算的就是总共有多少条记录,count(col)的话就是计算有多少列col的值不为null;sum 是计算某列的值的和,为null的值不计算;sum和count 都可以作为select的字段;如果不是要计算某个特定的col,count(*)的效率是最高的,因为数据库会自动为你找到最合适的计算方法...

2019-04-04 11:14:32 184

原创 Charles抓https包配置

写在最前面的话: 1.手机安装一个https证书以后不是一劳永逸的,用不同的电脑给手机抓包时安装的证书是不一样,每次换一个电脑抓包都需要重新安装证书。 2.每次配置证书时,首先要配置手机代理,链接到对应的电脑 3.安装的证书要保存位cer格式的安卓抓https配置一般通过浏览器访问链接的方法下载的证书后无法安装,我们可以在Charles中保存一份证书,然...

2019-04-02 18:18:04 1273 1

原创 Appium中涉及到的一些工具介绍

1.SDK在安装sdk的安装目录中找到 SDK Manager,然后运行它。在Tools下面看到一个Android SDK Tools,这是一个基础的安卓组件包;Android SDK Platform-tools,存放公共开发工具。如下图所示后面显示Installed,代表已经安装过了。build-tools可以下载好后,放到与上面那个文件的目录下配置环境变量就可以了。2...

2019-01-06 17:15:28 962 2

原创 Appium安装教程

第一次安装Appium真的是费了老大劲,看了好多教程,有很多地方还不太懂,所以记录一下自己安装的过程,方便以后查看。1.安装jdk安装jdk没什么复杂的,如果安装的是.exe的话,在CMD中进入命令行输入java或javac会出现版本信息等然后就好了(ps:有时也需要再配置一下系统路径),或者是安装解压版的jdk文件,解压之后,然后配置一下系统路径就可以了,在CMD中输入Java检查安装是...

2019-01-05 21:41:32 1175

原创 笔试之java总结

1.说出你所知道的集合,并说出它们的区别集合区别的详细解释可以参考这个HashSet\ArrayList\HashMap都是线程不安全的.如果有多条线程访问它们,而且有超过一条的线程试图修改它们,则可能出现错务.Collections提供了多个静态方法用于创建同步集合下面程序创建了四个同步的集合对象1)List接口(继承Collection):元素有序,可重复,(允许多个null元素对...

2018-12-26 13:23:17 139

原创 adb connect 连接失败问题adb connect 127.0.0.1:62001 unable to connect to :5555

在控制台输入命令,连接失败,报如下错误:adb connect 127.0.0.1:62001 unable to connect to :5555看了网上好多的教程,都于事无补,之前都是可以连上的呀,为什么这次连不上呢,百思不得其解。我把控制台关闭,重新通过cmd命令,打开控制台,又输入了一遍命令竟然就好了可能是因为我是先打开的控制台,后开的模拟器吧,记录一下,避免以后犯同样的错...

2018-12-25 18:16:03 43925 1

原创 Linux常考命令总结和详解

1.怎么查看当前用户id?id -u命令详解:id命令用于显示当前用户的UID,GID以及所属组的组列表,该命令的语法格式为:id  [选项]  [用户名称]该命令所使用的选项参数说明如下:        -g:显示用户所属群组的ID。        -G:显示用户所属附加群组的ID。        -n:显示用户所属组或附加组的名称。  eg: id -un(查看...

2018-11-03 17:16:11 630

转载 Java泛型详解

原文链接:链接引言泛型是Java中一个非常重要的知识点,在Java集合类框架中泛型被广泛应用。本文我们将从零开始来看一下Java泛型的设计,将会涉及到通配符处理,以及让人苦恼的类型擦除。泛型基础泛型类我们首先定义一个简单的Box类: 1 2 3 4 5 public class Box {     priv...

2018-10-25 11:12:32 136

原创 Java基础1——基本类型和关键字

看到一篇写的很好的Java基础的文章,不自己再写一遍的话好像就没有看过一样,方便以后看,有很多东西都是直接copy过来的。最后分享一下原文的链接:原文链接一、数据类型1.Java有8种基本数据类型,基本类型都有对应的包装类型,基本类型与其对应的包装类型之间的赋值使用自动装箱与拆箱完成。boolean/(1) —— Boolean 没有明确给出占的字节数,只是说明代表true和false...

2018-10-23 16:08:38 358

原创 MySQL学习笔记(一)

1.数据库是什么?数据库(DataBase,DB):指长期保存在计算机的存储设备上,按照一定规则组织起来,可以被各种用户或应用共享的数据集合。2.数据库管理系统是什么?数据库管理系统(DataBase Management System,DBMS):指一种操作和管理数据库的大型软件,用于建立、使用和维护数据库,对数据库进行统一管理和控制,以保证数据库的安全性和完整性。用户通过数据库管理...

2018-09-11 22:21:38 156

原创 The request sent by the client was syntactically incorrect.

在springMVC项目中,多次出现这个问题,所以记录一下,以便以后出现同样的问题时查看。查看了网上好多博客,都是说前后端字段的类型不一样造成的,但是查看了一下字段的类型是一样的呀,不存在这个问题,那是怎么回事呢。通过一个字段一个字段地排查,终于找到了原因:(1)使用http等协议的关键词,比如status,在我的项目中传的参数名称为status,就出现了这个错误,把名称改了之后问...

2018-09-04 22:33:39 631

空空如也

空空如也

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

TA关注的人

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