自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

abcnull 的博客

一线头部大厂程序员,挤点时间总结一些经验和知识点

  • 博客(38)
  • 资源 (7)
  • 收藏
  • 关注

原创 java如何读写操作yaml文件展示

文章目录前言java 读取 yamljava 写入 yaml前言yaml 本身是一个标记语言,其文件形式是.yml,常用来作数据配置的文件下面使用的 Yaml 来源于org.yaml.snakeyaml这个依赖包,需要自己导入java 读取 yaml@Test public void read() throws IOException { Yaml yml = new Yaml(); FileReader reader = new FileReader("s

2020-06-30 18:51:33 3768

原创 yaml标记语言学习介绍

文章目录简介基本规则数据类型锚点和引用简介yaml 常用来配置项目,和 json 类似,称作 json 的超集,特别适合描述数据结构,因此常用来作数据驱动或者配置文件文件后缀为.yml基本规则大小写敏感缩进来表示层级关系,但是不允许 tab 只许空格,且空格数不重要,相同层级需要对齐#用来注释数据类型键值对key1: value1key2: value2数组- array1key: [value1, value2]- value1 value2纯

2020-06-28 23:04:43 433

原创 java常用的字节流和字符流操作

文章目录前言字节流OutputStream 字节输出流InputStream 字节输入流字符流Writer 字符输出流Reader 字符输入流二者区别使用场景其他注意点前言java 的 IO 流有很多类,常见常用的也就是字节流 InputStream 和 OutputStream 输入输出流,这是字节流两个顶级父类(当然上面还有接口),还有 FileReader 和 FileWriter 输入输出流,这是字符流两个顶级父类输入和输出可以理解为相对于内存或者屏幕来说的,从磁盘读取到内存中是输入,写进磁

2020-06-28 21:45:09 1099

原创 windows下安装node.js并配置环境变量

文章目录前言下载地址配置 node 与 npm配置环境变量前言node.js 是一个基于 chrome v8 引擎的 js 运行环境。可以让 js 运行在服务端的开发平台,node.js 发布于 09 年,这次发布使得 js 和其他各大脚本语言平起平坐成为最主流的脚本语言之一npm 是 node package management 即 node.js 自带的软件安装包管理工具下载地址https://nodejs.org/zh-cn/download/很简单,我们下载 win 的 msi 或者

2020-06-27 18:46:25 2491 1

原创 selenium与appium依赖中类与类之间到底是如何继承的详解

文章目录前言涉及 driver 的类的继承关系其他常见类的继承关系完整的继承关系图前言下面我会把 selenium 依赖和 appium 依赖混合起来,因为二者依赖包之间本身就已经具备了一些类的相互继承关系,下面我会通过 uml 类图的形式非常清晰的展现涉及 driver 的类的继承关系下面这张图不够全面,但是足以把最常用最重要的和 driver 有关的类和接口囊入其中我们能从上图中得到哪些信息呢?最上面的接口在往上无继承,WebDriver 是一个接口,我们平常使用WebDriver driv

2020-06-23 18:36:39 617

原创 良心推荐!Jetbrains idea实用的快捷键分享

文章目录前言ctrl 系列alt 系列shift 系列ctrl+alt 系列ctrl+shift 系列ctrl+alt+shift 系列前言此文主要是记录自己在使用 idea 工具时实用的快捷键,也就是说并不是 idea 所有的快捷键都会在此文分享,博主只会把平时使用过程中觉得能很好提升编程效率的快捷键拿过来做分享。一般 jetbrains 所有的编程产品,下方的快捷键基本都是支持的往后此文还会不断的补充!ctrl 系列保存(基本不需要,idea 自动保存)ctrl+s当前页面查找ctrl

2020-06-22 23:52:48 489

原创 java8新特性-Stream流式处理

文章目录前言stream 与 parallelStream集合类使用流Stream 接口常用方法前言java 8 允许你用一种流式操作处理集合的元素,可以把集合的数据看成水流,水流要得到处理最终从管道末端出来,管道中每处设立了一个结点代表对流进行处理,比如 filter() 之类的方法,然后从每个结点出来的仍然是 Stream 流stream 与 parallelStream串行流 stream并行流 parallelStream此文只做串行流 stream 的简介,并行流以后会在另一

2020-06-22 22:22:28 757

原创 java8新特性-lambda表达式

文章目录前言函数式接口基本格式简单示例作用域Map.forEach()Stream中的 lambda双冒号 :: 简写 lambda前言java 8 一个大亮点就是引入了 lambda 表达式,使得代码开发更加简单。主要用于定义行内执行的方法类型接口,比如有一个接口你懒得去实现然后调用其方法就可以写一个 lambda 表达式lambda 表达式到底做了什么事呢?具体的理解就是它实际上是一个接口的匿名实现类,箭头后是对接口中的抽象方法进行了实现,箭头前是抽象方法的传参函数式接口我们在学习 ja

2020-06-22 22:18:11 500

原创 appium的滑动操作总结

文章目录前言通过 TouchAction 上下左右滑动前言博主在写完 selenium 的各种滑动操作之后又来补充 appium 滑动操作啦,因为博主在 selenium 上花的精力要多一些,所以 selenium 的滑动操作还是特别全面的,appium 就简陋了不少,未来会补充此文的!通过 TouchAction 上下左右滑动通过 TouchAction 这个对象按住屏幕然后可以进行上下左右滑动,从指定坐标滑动到指定坐标。下面我会用往下滑动举例说明int width = driver.manag

2020-06-21 23:26:29 1200

原创 selenium滑动窗口页面滑块滚动条操作大汇总

文章目录前言滑动到页面最底部滑动到页面最顶部上下滑动使元素和窗口底部对齐上下滑动使元素和窗口顶部对齐水平滑动到页面最右边水平滑动到页面最左边水平滑动滑块用按键来进行上下左右滑动前言其实对于 selenium 操作浏览器而言大部分的滑动操作都可以使用 js 脚本完成,还有一些可以借助按键操作滑动到页面最底部((JavascriptExecutor) driver).executeScript("window.scrollTo(window.pageXOffset, document.body.scro

2020-06-21 23:04:28 9249 1

原创 It is impossible to create a new session because createSession which takes HttpClient, InputStream

文章目录前言解决前言环境使用 sdk,appium 进行移动端自动化操作,但是开启 appium,然后运行代码直接报错It is impossible to create a new session because ‘createSession’ which takes HttpClient, InputStream and long was not found or it is not accessible解决查看 appium 中的 log 日志,发现是需要将 adb 可执行文件的环境变量

2020-06-21 10:50:54 1305

原创 appium capabilities各个参数含义

文章目录这里官网链接,无需魔法上网 http://appium.io/docs/en/writing-running-appium/caps/想要使 inspector 连接安卓的模拟器或手机需要以下参数platformNamedeviceNameappPackageappActivityautomationName一般写代码脚本需要以下基本参数(本人测安卓机)platformNameudid(这个是唯一设备 id)deviceName(名字可以随便填写)appPacka

2020-06-15 22:45:14 2071

原创 想进行移动自动化?appium整套环境的安装教程

文章目录JDK 1.8 及以上安装安卓 SDK 安装安装 appium-desktop(内含 server 和 inspector)、模拟器或真机JDK 1.8 及以上安装下载 JDK 1.8 或者以上版本,下载好后配置环境变量,这个比较简单,不多说了对于使用 python 脚本来开发的同学,写一个 python3 然后配置一下环境变量就行了安卓 SDK 安装softonic 下载 sdk腾讯开放平台下载 sdk下载好之后会有个 androidSDK 文件夹,我们要将 avd 设备的默认安装

2020-06-14 22:34:19 527

原创 如何使用appium-desktop进行脚本录制

文章目录前言appium-desktop 使用简介录制的详细操作过程前言一般我们要使用 appium 来做手机端自动化,要么下载一个 appium-desktop(其中有图形化的 server 和 inspector 定位元素工具),要么只下载一个 appium-server 就行。SDK 肯定也是要有的(其中含有 adb 全称 android debug bridge 安卓调试桥)。还需要模拟器或者真机(需要 root 权限),模拟器推荐网易 mumu(只有安卓 6.0 版本) 或者 genimot

2020-06-14 22:27:25 1375 1

原创 Original error: pkg: /data/local/tmp/appium_cache/8d4156e508daae39c3f4815552e22e311432ff1f.apk

文章目录环境简介问题截图解决办法环境简介我打算用 appium-desktop 工具启动 inspector 来找模拟器软件中的元素定位,结果 start 的时候出现这个错误。我在使用 1.9.1 这个比较老的版本的 appium 时候没有这个错误,在使用 1.17.1 最新的版本的时候出现了这个错误,怀疑新版本 appium 的影响本人使用的模拟器是网易 mumu 模拟器,模拟器固定是安卓 6 的版本问题截图报错文本:An unknown server-side error occurr

2020-06-14 21:59:06 1649 2

原创 如何加快github下载release的速度

文章目录前言通过迅雷下载链接前言网上只看到三种方式自己去买个代理,或者自己在网上搜个免费代理(这个太难找了)通过把 github 项目导入到 gitee 中再下载(对于下载 release 软件包来说无效)通过修改 hosts 文件(这个虽然写的人很多,但是基本全部无效)因为我要在 github 下载一个 release 包,它有几百兆,怎么也下载不下来,可恶的墙!最快也只有几百 b,我是真的服气,然后在网上找了各种各样的方法全都是无效的方法,可是最后我还是解决了通过迅雷下载链接操作

2020-06-14 19:41:29 2791 1

原创 Cannot find AVD system path. Please define ANDROID_SDK_ROOT错误的解决

文章目录前言先说出现这种错误的原因再说解决最后我们谈一下为什么大家都会遇到这种错误前言我在网上看到各种这种错误的报错以及解决方案,搜了几百条没有一条说道正点上去,我也是服气,由于我也遇到了这个错误,所以我打算从原因到解决思路好好的总结一下先说出现这种错误的原因因为模拟器开始启动的时候会在某个特定目录下去寻找你创建的 avd 设备,试想一下要是这几个特定的路径你没有配置进环境变量不就会出现这种错误了!正是这个原因,神坑模拟器启动时候会按照如下顺序查找模拟器设备的路径$ANDROID_AVD_H

2020-06-14 14:02:30 3977 3

原创 如何快速解析字符串类型的cookies

文章目录前言使用 AWK 工具解析前言怎么取到 cookies 的 String 形式,我们一般可以在接口中取,我们不应使用前端 js document.cookies来获取,因为这种方式获取的 cookies 不全!使用 AWK 工具解析通过写一个 awk 脚本可以很方便的解析 cookies 成为我们需要的代码,现在假如我们从前端的接口中抓取到了 cookies 字符串,我们通过 awk 脚本假如要转化为如下形式:drvier.manage().addCookie(new Cookie("键

2020-06-13 15:12:28 1395

原创 Selenium登录网站的多种实现手段

文章目录用 WebDriver 点击 UI 实现登陆用 HttpClient 模拟接口进行登录直接手动抓登录信息写在项目中用复用浏览器 getCookie 来登录其他用 WebDriver 点击 UI 实现登陆这一种是最常规的方式,就是直接使用 WebDriver 点击 UI 界面实现登陆操作,基本上绝大部分的 WebUI 测试项目用这种方式都是足够了适合的登录页:常规的没有任何验证码,没有滑块,不用扫二维码的登录页面适合有滑块的登录页面对于有比较规范的验证码的登录页面,可以尝试集成图像识别

2020-06-12 21:15:18 1832

原创 surefire插件的使用

文章目录写在前面结合 TestNG 配置结合 Junit 配置配套 mvn 命令使用![在这里插入图片描述](https://img-blog.csdnimg.cn/20200612142828142.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2FiY251bGw=,size_16,color_FFFFFF,t_70写在前面surefir

2020-06-12 14:31:07 1420

原创 如何使用Selenium IDE插件来录制脚本

文章目录前言详细录制操作过程录制的脚本支持的功能我们常用的操作功能写在后面前言我们知道 selenium 的三大核心组件:Selenium WebDriverSelenium IDESelenium Grid这里我们就来讲一讲 Selenium IDE 的录制操作,一般我们用 Selenium IDE 录制脚本帮助我们更好的完成 UI 自动化代码Selenium IDE 谷歌有,火狐也有,我这里采用火狐的插件来录制,其实都是一样的,不过火狐没有被墙所以插件下载方便一些详细录制操作过程

2020-06-11 22:02:14 1032

原创 selenium复用浏览器进行调试操作如何去做

文章目录前置准备执行谷歌调试命令手动点击页面添加调试代码适用的场景前置准备我们的需求是要调试浏览器的某个页面进行某些操作,但是我们要求是操作当前已经打开的某个页面,在当前页面直接执行程序运行 selenium 脚本,这个时候可以用到复用浏览器的方法以 chrome 浏览器为例,我们需要:chrome 浏览器(最好配置进环境变量,其 exe 文件在桌面谷歌右键属性中打开文件位置中可以找到)下载好与自己谷歌浏览器版本对应的谷歌驱动(这个 chromedriver 配不配置环境变量随意)有基本框架的

2020-06-11 21:22:52 2205

原创 PageObject模式下驱动初始化该放在何处的深入思考

文章目录写在前面放在 Page放在 PageCoomon放在 MainPage放在 TestCase放在 BaseTest写在后面写在前面我们坐在 UI 自动化或者 API 自动避免不了会使用 PO 模式,这个思想也确实是个好东西,能帮助我们更好的维护代码。我们一般会使用公司流传下来的框架模板,或者自己去 github 上拉取一个项目模板,但是现在我们不妨自己去动手写一个框架,做一个属于自己的项目,当我们开始使用 PO 模式的时候,选取了 junit 或者 testng 的时候,我们开始要写驱动了,

2020-06-10 18:32:04 342

原创 PageObject设计原则

文章目录写在前面Martin Fowler 的观点PO 的 6 大原则写在前面PageObject 的设计模式是 2013 年被国外大神 Martin Fowler 提出来的,其实也没有几年时间,但是它的思想还是很重要的,目前基本很多项目都采用了这个原则基本思想就是代码逻辑和业务逻辑相分离Martin Fowler 的观点Martin Fowler 当年的 PageObject 的观点PageObject 提供的接口需要封装操作细节PageObject 中不需要对每一个元素进行封装,我们只

2020-06-09 13:53:20 2055

原创 JUnit5入门学习

文章目录前言注解参数化与数据驱动断言测试套件并行问题动态测试前言相比 junit4 这个相对落后的技术,我写的博文比较简短,所以 junit5 我打算稍微深入一下,所以大家会发现我的 junit5 的篇幅是长于 junit4 的junit5 的结构platform 提供平台功能,jupiter 是核心,vintage 用来兼容 junit3 和 junit4junit5 = junit platform + junit jupiter + junit vintageJunit5 引入依赖

2020-06-08 21:30:39 456

原创 编程学习总容易忘记?这里有好方法!

文章目录写在前面学会总结博文总结github 模板回顾应用反复回顾尝试应用写在后面的话写在前面计算机从业者在工作学习中会遇见一个非常常见的问题,那就是学习的东西太多太多了 ,又特别容易忘记,这该怎么办呢?几年的学习经验的博主小小的规划总结了一下,并且把这些好的方法呈现出来给大家,希望能帮大家解决这个疑难问题这张图是艾宾浩斯遗忘曲线,我们可以清晰的看到,当我们学习一个东西的时候,短期内它就会被急速遗忘,然后时间久了感觉记住的已经不多了。有时候我们感觉学习了一个新事物后,过了 10 天或者 20 天都忘

2020-06-08 19:55:48 2881

原创 Junit5使用allure2测试报告

文章目录Allure2 和 ExtentReports 比较具体操作步骤补充说明Allure2 和 ExtentReports 比较java+junit5 中常用的有 extentreports 报告模板还有 allure2 报告模板。二者都比较常用,但是 allure2 用到应该稍微多一些extentreports 和 allure2 比较:extentreports 生成的是 html 报告方便 jenkins 的邮件发送extentreports 只支持 java 和 .net 比 all

2020-06-07 23:21:43 1834

原创 刚下载了idea?一起来配置一个idea个性化的环境吧!

文章目录下载常用插件配置展示效果配置各种 sdk配置 mvn配置 git 与 github配置注释配置字体与快捷键配置各种 template下载常用插件idea 好用插件推荐配置展示效果勾选上Toolbar去掉如下,让包能够分层展示Hide Empty Middle Package配置各种 sdk一下所有语言配置在新建项目时候即可选择 sdk 配置,或者在项目中有个 project structure 也可以配置配置 jdk配置 python配置 bash shellsh

2020-06-07 00:17:17 570 1

转载 idea将默认java1.5改成1.8的方法

转载链接https://blog.csdn.net/zly9923218/article/details/51419042

2020-06-06 11:50:03 2006

原创 TestNg中的注解讲解

文章目录关于执行顺序关于 @Test关于 groups关于 @DateProvider关于执行顺序从上到下的顺序@BeforeSuite 在测试套开始时候执行@BeforeTest 在测试测试开始时候执行,在 xml 中表现为在 标签的测试中最开始执行@BeforeClass 在测试的类最开始时候执行,在 xml 中表现为在 标签中开始执行@BeforeGroup 在测试分组时候开始执行@BeforeMethod 在每一个测试方法之前执行,测试的方法为标注了 @Test 注解的方法@

2020-06-05 18:53:34 1646

原创 Junit4入门学习

文章目录前言测试的注解运行器的注解实例讲解前言junit4 功能有限,所以这篇入门学习浅薄了一些,建议朋友们直接去学习 junit5 或者 testng,这两个都是目前最主流的工具了测试的注解Junit4中的注解,前 5 个注解从上到下的顺序执行,多个测试类构成一个测试套 suit,运行期 RunWith 决定让测试套如何运行@BeforeClass 在类开始时候执行,执行一次@Before 在每一个测试方法前执行,有几个测试方法执行几次@Test 测试方法@After 类

2020-06-05 12:01:28 322

原创 windows下redis安装配置教程

文章目录前言详细步骤前言redis 作为 nosql 数据库的代表是各大公司热衷的非关系型数据库,基本数据存储形式是 key-value 的键值对,同样也是支持数据持久化的。在相同硬件配置,比 mongoDB 性能强太多,所以很多公司大量使用它详细步骤下载 redis这里提供github redis download我们可以选择最近发行版,下载 Redis-x64-xxx.zip 压缩包,注意不要选成源码包了,下载路径可以自己随便指定解压到指定路径只有几兆大小,一下就下载好了,

2020-06-04 18:57:54 786

原创 mysql数据库中的四种语言 DDL DML DCL TCL

文章目录DDLDMLDCLTCLDDLDDL (Data Definition Language )数据库定义语言DDL 主要是定义数据库的语言,不需要 commit 提交CREATE ALTER DROP TRUNCATE COMMENT RENAME DMLDML (Data Manipulation Language)数据操纵语言DML 由数据库管理系统提供的,主要让管理者使用,用来操作数据库的表中的数据,需要 commit 提交SELECT INSERT UPDATE

2020-06-03 19:52:38 848

原创 科普向,mysql版本为何从5.7一下跳跃到8系列

文章目录我们先看一段英文解释,这段英文来自于著名的 www.infoworld.comThe first question people are likely to ask: If the most recent version of MySQL was a 5.x release, why’s this one 8.0? For one, version 6.0 was canned as part of the transition to “more frequent and timely rel

2020-06-03 16:19:51 2414 2

原创 一文看懂实际项目中git切分枝提交代码的多种操作

文章目录前言第一种切分枝提交方式第二种切分枝提交方式前言已知一个项目当我们拉取下来肯定会直接存在 master 主分支,那我们实际开发中需要建立自己的分支,以后提交代码也不能提交到 master 分支而是一个开发分支上# 查看分支git branch# 创建分支git branch xxx# 切换分支git checkout xxx# 将本地分支推送到远程git push -u origin xxx# 分支合并,当前为 master,分支 xxx 合并到 mastergit me

2020-06-03 15:15:18 708

原创 一文看懂各种场景的git撤销回滚操作

文章目录前言场景一:工作区改动未 add 还原工作区修改场景二:已 add 未 commit 还原工作区成 stage 但 stage 不变场景三:已 add 未 commit 还原工作区成 stage 且 stage 清除,等同于撤销 add场景四:已 add 未 commit 还原工作区成最近一次 commit 的版本场景五:已 add 已 commit 将整个版本回退到上一次 commit 的版本且工作区保留最新代码场景六:已 add 已 commit 将某个文件回退到上一次 commit 的版本且工

2020-06-02 19:23:08 804 1

原创 windows安装配置git并初始化邮箱

文章目录git 下载配置环境变量检查 git 是否配置成功初始化 gitgit 下载git 直接去官网下载,建议下载最新版的,再怎么也得安装 1.8 以上的版本,因为很多工具支持 1.8 以上的版本git 下载配置环境变量下载好之后,我们添加系统变量GIT_HOME,变量值为D:\JavaTools\Git,这个地址值根据大家的路径决定然后我们再点击系统变量PATH中添加一行%GIT_HOME%\cmd,最后一步步确定保存即可检查 git 是否配置成功如果配置环境变量之前已经打开了 dos

2020-06-01 18:39:15 956

原创 如何给typora更换主题背景

文章目录前言详细步骤第一步:官网下载主题第二步:typora 设置主题步骤三:重启 typora 并选择新主题前言typora 非常好用 markdown 文本编辑器,非常轻巧且灵活,功能也非常强大,占用资源少我们平常使用 typora 的时候默认是白色的背景,觉得太伤眼睛了,就换成了黑色,直接的黑色又觉得太单调了,而且用久了也失去了新鲜感,怎么办?我们直接去官网去搜主题安装嘛详细步骤第一步:官网下载主题地址:Typora Theme我选的第二行第三个,点击进去,再点 download 我们

2020-06-01 00:22:17 6507

typora-cobalt-theme-master-v1.1.zip

typora 的 cobalt 黑色主题包,zip 压缩文件,随便下载到哪,下载后解压需要将里头的 css 文件和 cobalt 文件夹放置于 typora 的 theme 文件夹下,之后重启 typora 就可以选到该主题,theme 文件夹通过偏好设置->打开主题文件夹可以查找

2020-06-01

Xcode Midnight.jar.zip

intellij idea 的主题风格 xcode,intellij 的软件基本都是支持的,风格挺好看,望下载支持,不需要积分即可下载!

2020-05-30

Windows Update Blocker v1.1.zip

wub 软件,停止 win 10 自动更新,亲测有效,可以使用。 软件名:Windows Update Blocker v1.1.zip 上传者:abcnull

2020-04-19

mysql练习题-sql_practice.pdf

mysql用本博主前面的文件建表完成后,此文档为题目,博主本来想把这些文档一起上传,奈何csdn一次只能上传一个文档(╥╯^╰╥)

2020-03-12

mysql练习题-create_table.pdf

与建表.txt是一样的,文档是英文,不过英文不太复杂,不影响阅读。

2020-03-12

mysql练习题-sql建表文件.txt

mysql建表习题,对应着博主的另两篇pdf,此文件可以改成sql后缀,这样在navicat中可以直接导入,此文件中所用的是mysql语句

2020-03-12

template.html

用于java testng 做 WebUI 自动化时使用的 beautifulreport 测试报告的定制 html 模板

2020-01-26

空空如也

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

TA关注的人

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