- 博客(25)
- 收藏
- 关注
原创 Jmeter分布式压测方案
背景:本地电脑通过Jmeter图形化界面(GUI方式)控制本机及其他远程机器,以它们为压力机,对被测的服务器进行压力测试,并将压测的结果同步到Jmeter图形化界面中,进行分析。准备:1、作为压力机的本地电脑和远程机器安装jdk、jmeter,版本要一致,并且配置好环境变量,配置完毕后,执行java -version和jmeter -v进行验证,如果返回了版本信息等内容,说明环境配置ok!2、远程机器进入jmeter的bin目录下,打开jmeter.properties文件,remote_hosts
2021-12-15 18:43:02
1335
原创 sonarqube静态扫描代码环境搭建及使用(本地环境)
一、背景目标:在macbook机器本地环境搭建sonarqube服务,并对本地maven项目代码进行静态扫描,将扫描结果提交到sonarqube服务中,并在web页面中展示出来。二、搭建步骤1、下载sonarqube软件下载地址:https://binaries.sonarsource.com/Distribution/sonarqube/下载历史版本sonarqube6.7.5的zip压缩包,因为高版本不稳定。解压后,在/bin/macosx-universal-64文件夹下执行sonar.sh
2021-06-20 13:16:03
1517
原创 java.lang中String类源码分析
一、类public final class String:final关键字说明String类不能被修改(不能被其他类继承和重写)public final class String implements java.io.Serializable, Comparable<String>, CharSequence二、方法1、subString(int beginIndex, int endIndex):截取子字符串1) 第一层方法public String substring(
2021-06-08 18:20:59
131
原创 java中ArrayList与LinkedList的区别
一、背景面试题中经常会被面试官问到ArrayList和LinkedList的区别,下面从源码角度来对他们进行一下简单的阐述,相信会对它们有一个更全面深入的了解。首先,ArrayList和LinkedList都实现了List接口,ArrayList的底层是通过【动态数组】实现的,LinkedList底层是通过【链表】实现的。二、ArrayList通过add(e)方法添加元素java中的数组一旦定义之后长度length就不可变了,是不可变数组;而python是可变数组,这点需要注意这两种语言的不同;Ar
2021-06-08 13:00:35
556
原创 java中的字节流和字符流
前言字节流:分为字节输入流(InputStream)和字节输出流(OutputStream)字符流:分为字符输入流(InputStreamReader)和字符输出流(OutputStreamWriter)一、字节流1.字节输入流(InputStream)说明:字节输入流是读取外部文件的内容,输入到程序中,所以叫输入流,因为是按照字节为单位读取的所以叫字节输入流。使用方式:创建流对象,并调用流对象的read方法从流中读取数据。场景1)使用read(byte[] bytes)方法读取中文
2021-05-20 11:43:19
901
原创 springboot中java泛型使用
前言java中泛型的使用非常普及,泛型在项目中的使用往往能达到事半功倍的效果,基础知识就不普及了,网上太多了,主要介绍几种典型的用法。1.泛型类的使用1)创建一个简单的的泛型类(标志就是类后面通常以为标记),在用该类创建对象的时候,T传递的类型是什么,给data变量赋值就是什么类型。//这里@Builder注解的用途是:在创建该类的对象时,可以用类名.builder.属性名1(值1).属性名2(值2).build方式构建,替换new创建对象的方式@Builder@Data@NoArgs
2021-05-14 16:45:44
4035
原创 Springboot使用JPA框架对数据库实现增删改查(附详细代码)
前言1、本文将详细阐述如何使用JPA框架对数据库实现增删改查操作,业务中比较常见的应用场景几乎在这里都能看到,并且有详尽的代码可供直观演示,其中遇到的坑也进行了实时标注。2、JPA的环境配置在前面的章节已有总结,不再赘述,直接上干货。环境准备步骤1:创建实体类对象@Entity //该注解必须加,表明这是一个与数据库映射的实体类@Data@NoArgsConstructor@AllArgsConstructor@Table(name = "merchant_info") //项目启动后
2021-05-12 19:08:24
6238
2
原创 Linux shell 基础语法
常用变量的定义//定义变量、获取变量值(数值型)$ a=1$ echo ${a}1//定义变量、获取变量值(字符串)$ a="hello world"$ echo ${a}hello world//$?代表上一条命令返回状态:0代表true,非0代表false$ echo $?0//String变量中引用其它变量,本变量要用双引号,非单引号$ m="wanglihong"$ n="what is your name? ${m} "$ echo ${n}what is y
2021-05-07 12:19:43
193
原创 jenkins详细设置(二)
前面一篇介绍了docker部署jenkins服务https://blog.csdn.net/qq_30237715/article/details/115623372.本文介绍jenkins的详细设置一、基本配置1)浏览器打开,启动jenkins页面http://111.222.333.444:8080(换成自己服务器公网ip地址),首次启动,我们需要输入认证密码,我们通过docker容器查看日志获取密码或者进入到容器中查看存储密码的文件。[root@localhost ~]# docker log
2021-04-12 17:09:06
500
原创 docker一键部署jenkins服务(一)
一、简介1)docker是当前流行的容器技术,通过docker技术可以实现快速的部署常见的服务。2)jenkins是当前主流的持续集成的工具和框架(CI),通过jenkins可以实现项目的智能化构建和测试。二、jenkins的部署方式传统的部署方式是下载jenkins.war包,并放置于tomcat容器中执行即可,但是这种方式相对比较繁杂,需要提前下载tomcat和jenkins等,并将jenkins.war包放置于tomcat下的webapps文件夹下,管理起来很麻烦。这里我们介绍的是通过doc
2021-04-12 16:13:35
208
原创 检测移动端内存敏感数据方法(安卓)
一、背景:有时因为手机端应用程序备案的需求,需要将手机内存中存储的应用敏感数据进行脱敏或加密处理,我们再验证是否符合要求时,需要通过工具和技术去测试。二、测试步骤:1、PC端上安装android sdk并且设置好环境变量,网上资料很多,不再详述;2、命令行执行ddms,打开窗口,左侧列表中找到被测应用的名称并选中;3、在手机或模拟器上操作相应的页面(这个页面中的数据就是你要检测是否在内存中加密处理了),操作完成以后,点击窗口左上角的Dump HPROF file按钮,将文件导出;4、对导出的文
2020-08-25 19:26:51
1539
原创 WebDriverAgent安装到iphone真机
一、背景Appium ios平台自动化测试需要将WebDriverAgent安装到真机上,通过它驱动手机进行自动化测试,但实际往真机安装过程中会遇到各种各样的问题,特此记录一下。二、问题汇总:1、The executable was signed with invalid entitlements.2、Xcode There was an error communicating with your device.3、App installation failed: An unknown erro
2020-08-06 22:49:42
1663
原创 mac搭建appium自动化之testNG
1、导入testng的jar包百度搜索maven:repository即可查到相应的jar包依赖;注意:testng有时候版本过低,在执行测试时会报 java.lang.NoSuchMethodError的错;为了找到错误原因费劲精力,最后才发现是版本问题,本人用的testng-6.0各种报错,后来换成testng-6.14.3就完全ok了。(appium=1.17.1、java-client-7.00 )2、idea安装testng插件1)首先检查是否已安装,进入file—>setting
2020-07-28 19:22:18
242
原创 mac搭建ios自动化环境之WebDriverAgent配置
一、WebDriverAgent1、简单介绍:WebDriverAgent是facebook为苹果公司开发的一款自动化测试工具,github上有下载资源;另外appium安装后也会自动安装自带的WebDriverAgent;可以用自带的,也可以从github下载并替换自带的;2、不同appium版本自带WebDriverAgent默认路径不同1)appium 1.10.1之前版本:npm方式安装:/usr/local/lib/node_modules/appium/node_modules/a
2020-07-28 14:20:23
2386
原创 appium适用场景
appium应用场景:1、原生app跳转到浏览器打开的页面不适用于appium自动化测试;2、纯原生app或原生app中嵌套webview视图页面的混合app(非跳转浏览器页面)可以做appium自动化测试;3、纯浏览器应用可以做appium自动化测试;条件:混合app—>代码中打开webviewdebug功能—>谷歌浏览器中打开chrome://inspect定位web视图元素—>使用xpath或其他方式定位元素—>driver切换成webview视图的context。注
2020-07-12 11:06:02
490
原创 mac搭建appium环境之设置chromdriver
背景:appium对app进行UI自动化测试,原生页面切换到webview页面时,driver也要从NATIVE_APP切换到WEBVIEW_xxxxx,这个切换过程经常会出现chromdriver与安卓设备的webview版本不一致造成切换失败,从而不能执行后续对web页面元素操作的情况。解决方案:1、手动下载与安卓设备自带的webview相匹配的版本的chromedriver(注意与安卓设备的chrome浏览器和PC端chrome浏览器的版本没有任何关系);chromedriver下载地址为htt
2020-07-09 10:19:39
1120
原创 springboot使用定时器及发送邮件
1、定时器配置本人springboot版本为2.2.5,不用额外配置pom.xml及applicaiton.properties属性,直接全注解形式实现,下面用一个简单的实例演示一下:/** @Component注解使该类能被spring容器扫描到,并实例化为bean存储起来; @EnableScheduling注解代表开启定时器功能*/@Component@EnableSchedulingpublic class QuartzTask { //@Scheduled注解用在方法上,表示该方
2020-06-19 15:46:37
732
原创 RedisTemplate中opsForValue和opsForList方法使用
一、opsForValue用法key:字符串,value:可以是任意对象Object(例如String、具体对象如自定义类Student等),一个key只能对应一个value。1)value为String类型示例://赋值方法redisTemplate.opsForValue().set("username1","wangxinli");redisTemplate.opsForValue().set("username2","yanxiaotang");redisTemplate.ops
2020-06-19 15:42:51
9972
3
原创 springboot中使用redis详解
一、redis简介redis是一款高性能key-value(键值对)内存型数据库,是非关系型数据库的一种,它采用单线程的架构方式,避免了多线程存在的锁处理造成的资源耗费,读取速度非常快,非常适合变化不是太大但数据量很大的数据的存储和读取。redis中的数据类型:String、list、hash、zset、set五种。二、使用场景项目中涉及到数据查询的操作,先从redis中查询,若redis中不存在则从数据库中查询,再更新到redis中,以后再次执行相同的查询则直接从redis中查询,提高了效率。三
2020-06-17 18:55:23
1302
原创 Springboot中使用jpa
一、概念:JPA:全名Java Persistence API,顾名思义是java持久层API,是sun公司提出的,sun公司自己并没有实现,它是一种规范,是用来通过java操作数据库的,遵循ORM原则,即对象关系映射,将java对象映射到数据库中相应的表,这样我们通过对java对象的操作就可以实现对数据库表的操作(增删改查),而不用编写sql语句了;目前JPA框架的实现者有很多,性能最好的非Hibernate莫属,我们也是以它为例。二、配置1)pom.xml文件中配置jpa的依赖<!--
2020-06-10 14:07:51
751
原创 @AutoWired和@Resource注解异同分析
相同点:@AutoWired和@Resource注解都是从Spring容器中取出相应的bean对象,自动装配。不同点:@AutoWired:默认根据类型进行自动装配,依赖的对象必须存在,如果允许为null值,需要加required=false,即@AutoWired(required=false);若要通过名称装配可以配合@Qualifier注解;@Resource:默认根据名称进行自动装配,由nane属性指定名称,代码如下://定义一个Animal接口public interface An
2020-06-10 14:05:39
336
原创 Springboot使用bean方式详解(附代码)
上一章节中介绍了springboot创建bean的几种方式:注解形式(@Controller/@Service/@Component/@Repository)和@Configuration/@Bean组合注解形式;本章节主要介绍如何在项目中使用创建的bean。#####范例一:通过Bean类、xml配置文件创建bean并注入到容器中//创建bean类public class Computer { private String name; private String color;
2020-06-10 12:05:50
8113
4
原创 Spring原理简述
一、什么是Spring容器?Spring容器,也称Spring Ioc容器或bean容器,是Spring框架的核心,Srping容器对很多人来说是比较抽象难以理解的;1、从概念层面讲,对象的创建、初始化以及销毁的整个生命周期都交由Spring容器去管理,大大减少了开发的工作量;2、从代码层面讲,一个Spring容器就是一个实现了ApplicationContext接口的类的一个实例,即一个Spring容器就是一个AlicaitonContext(对象)ApplicationContext conte
2020-06-10 12:02:09
192
原创 Linux服务器tomcat部署war包
一、web项目处理1、本地pom.xml文件改造去除springboot自带的tomcat(有两种方式),并且依赖servlet-api;方法一:<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <exclusions> <exclus
2020-06-10 11:52:19
1355
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人