测试开发专栏
专注测试中实用技术、自动化脚本开发、性能、持续集成、自动化运维等多方面多领域测试水平的提高
活得真实
善意生活,善意沟通;活出生命的精彩,走出人生的意义!
展开
-
【shell】获取环境数据git信息提交至后端,用作脚本数据收集
【代码】【shell】获取环境数据git信息提交至后端,用作脚本数据收集。原创 2023-02-02 09:23:57 · 243 阅读 · 0 评论 -
Upstream Consistent Hash
地址ngx_http_upstream_consistent_hash-一种使用内部一致哈希环来选择正确后端节点的负载均衡器。它被设计为与memcache兼容。hash_strategy=与php memcache模块一致。这意味着您可以使用php memcache模块将值存储到memcache集群中,之后NGINX可以在集群中找到该值并从那里读取。此参数必须在上游定义内。它打开一致性哈希上游模块,并定义必须进行哈希的字符串,以便在哈希环上找到正确的后端。原创 2022-09-13 14:24:14 · 831 阅读 · 0 评论 -
Vue组件
关于VueComponent:1 组件本质是一个名为VueComponent的构造函数,且不是程序员定义的,是vue.extend生成的2 我们只需要写,Vue帮助实现new VueComponet3 每次调用Vue都会返回一个新的VueComponent4 .1组件配置中,data,methods,watch,computed。他们的this均是VueComponent实例对象4.2 new Vue(options)配置中,data,methods,watch,computed他们的this是V原创 2022-05-29 14:04:00 · 61 阅读 · 0 评论 -
Vue表单收集
原创 2022-05-29 13:41:35 · 75 阅读 · 0 评论 -
Vue表单收集
原创 2022-05-26 20:28:42 · 57 阅读 · 0 评论 -
Vue监视数据的原理
1 vue会监视data中所有层次的数据2如何监视对象中的数据?通过setter实现监视,且要在new Vue时旧传入要检测的数据 (1)对象中后追加的属性,Vue默认不做响应式处理 (2)如需给后缀添加的属性做响应式,请使用如下API: Vue.set(target.propertyName/index.value)或 vm.$set(target.propertyName/index.value)3 如何检测数组中的数据?通过包裹数组更新元素的方法实现,本质就是做原创 2022-05-26 19:18:45 · 201 阅读 · 0 评论 -
mac下镜像飞速安装Homebrew教程
安装/bin/bash -c "$(curl -fsSL https://gitee.com/ineo6/homebrew-install/raw/master/install.sh)"卸载/bin/bash -c "$(curl -fsSL https://gitee.com/ineo6/homebrew-install/raw/master/uninstall.sh)"brew helpExample usage:brew search TEXT|/REGEX/brew info [原创 2022-05-26 17:46:09 · 180 阅读 · 0 评论 -
【Vue】语法基础学习入门笔记1
Vue入门语法汇总集合1 插值语法2数据绑定3MVVM1 插值语法<!DOCTYPE html><html><head> <meta charset="UTF-8" /> <title>初识Vue </title> <script type="text/javascript" src="../js/vue.js"> </script></head>原创 2022-05-23 18:08:21 · 142 阅读 · 0 评论 -
【算法刷题3】二叉树的最大深度
最大深度是所有叶子节点的深度的最大值,深度是指树的根节点到任一叶子节点路径上节点的数量,因此从根节点每次往下一层深度就会加1。因此二叉树的深度就等于根结点这个1层加上左子树和右子树深度的最大值。而每个子树我们都可以看成一个根节点,继续用上述方法求的深度,于是我们可以对这个问题划为子问题,利用递归来解决:step 1: 终止条件,当进入叶子节点后,再进入子节点,即为空,没有深度可言,返回0.step 2: 返回值,每一级按照上述公式,返回两边子树深度的最大值加上本级的深度,即加1.step 3:本级.原创 2022-04-07 10:13:10 · 499 阅读 · 0 评论 -
【算法刷题2】二叉树的后序遍历
什么是二叉树的后续遍历,简单来说就是“左右根”,展开来说就是优先访问根节点的左子树的全部节点,然后再访问根节点的右子树的全部节点,最后再访问根节点。对于每棵子树的访问也按照这个逻辑,因此叫做“左右根”的顺序。从上述后序遍历的解释中我们不难发现,它存在递归的子问题:对每个子树的访问,可以看成对于上一级树的子问题。那我们可以用递归处理:终止条件:当子问题到达叶子节点后,后一个不管左右都是空,因此遇到空节点就返回。返回值:每次处理完子问题后,就是将子问题访问过的元素返回,依次存入了数组中。本级任务:对.原创 2022-04-07 09:53:12 · 171 阅读 · 0 评论 -
【算法刷题1】二叉树的前序遍历
解题思路什么是二叉树的前序遍历?简单来说就是“根左右”,展开来说就是对于一颗二叉树优先访问其根节点,然后访问它的左子树,等左子树全部访问完了再访问其右子树,而对于子树也按照之前的访问方式,直到到达叶子节点。从上述前序遍历的解释中我们不难发现,它存在递归的子问题:每次访问一个节点之后,它的左子树是一个要前序遍历的子问题,它的右子树同样是一个要前序遍历的子问题。那我们可以用递归处理:终止条件: 当子问题到达叶子节点后,后一个不管左右都是空,因此遇到空节点就返回。返回值:每次处理完子问题后,就是将子问题访原创 2022-04-07 09:18:59 · 1292 阅读 · 0 评论 -
算法题7:洗牌算法
1 for(int i = pukes.pukes.Length - 1;i>0;–i)2 {3 int randomIndex = Random.Range(0, i+1);4 pukes.Swap(randomIndex, i);5 }原创 2020-03-12 14:54:39 · 300 阅读 · 0 评论 -
高频面试题4:方法的参数传递机制
public class Exam4 { public static void main(String[] args) { int i = 1; String str = "hello"; Integer num = 2; int[] arr = {1,2,3,4,5}; MyData my = new MyData(); change(i,str,num,arr...原创 2020-03-09 18:10:31 · 216 阅读 · 0 评论 -
高频面试题3 类初始化过程与实例初始化
类初始化过程1,一个类要创建实例,需要先加载并初始化该类。 main方法所在的类需要先加载和初始化2,一个子类要初始化需要先初始化父类3,一个类初始化就是执行<clinit>()方法 <clinit>() 方法由静态类变量显示赋值代码和静态代码块组成。 类变量显示赋值代码和静态代码块代码从上到下顺序执行 <cl...原创 2020-03-09 15:09:03 · 223 阅读 · 0 评论 -
高频面试题2:单例设计模式
Singleton:在java中即指单例设计模式,某个类在整个系统中只能有一个实例对象可被获取和使用的代码模式。jvm中的runtime类。1,只能有一个实例(构造器私有化)2,必须自行创建这个实例。(含有一个该类的静态变量来保存这个唯一的实例)3,必须自行向整个系统提供这个实例(对外提供获取该实例对象的方式1直接暴露2用静态边量的get方法获取)常见形式:饿汉式: 类实例化直接创建对象...原创 2020-03-09 10:13:48 · 195 阅读 · 0 评论 -
高频面试题1:自增边量
package com.sxt.interview;public class 自增 { public static void main(String[] args) { int i = 1; i=i++; int j=i++; int k = i+ ++i*i++; System.out.println(i); System.out.println(j); S...原创 2020-03-08 11:32:58 · 201 阅读 · 0 评论 -
算法题6 快速排序
public class Quicksort { public static void main(String[] args) { int[] ints= {12,3,6,7,8,5,8,5,9,56,89,4678,46,45}; sort(ints,0,ints.length-1); for (int k = 0; k < ints.length; k++)...原创 2020-03-07 18:08:11 · 237 阅读 · 0 评论 -
算法题5 用数组实现队列
先定义队列的接口public interface IQueue<T> { /* * 初始化一个空队列 */ IQueue InitQueue(); /* * 销毁一个队列 */ IQueue DestroyQueue(); /* * 清空一个队列 */ ...原创 2020-03-07 18:03:34 · 308 阅读 · 0 评论 -
算法题4 用单链表实现队列
package com.interview;public class LinkQueue<T> { class Node<T> { private T data; private Node<T> next; public Node() { this.data = null; this.next = null; } pub...原创 2020-03-07 07:48:53 · 161 阅读 · 0 评论 -
算法题3 二分查找法
快速查找:二分查找法有序数字:3,5,8,10,14,18,19,20,34,58package com.interview;public class BinarySearch { public static void main(String[] args) { //查找n int[] ints = {1,2,3,6,8,9,10,14,15,21,34,36,43,...原创 2020-03-06 12:02:58 · 215 阅读 · 0 评论 -
算法题2 插序算法
首先分析插序算法的原理:举例:int [] ints = {0,1,3,4,9,3,2,3,5,1,0};for循环进行遍历,判断相邻两个值得大小,如果前面的小于后面的,就开始进行阶循环。即9,3时,也就是i循环 for (int i = 1; i <= ints.length-1; i++) { if(ints[i]<ints[i-1]) { //此时进入阶循环 j...原创 2020-03-05 19:43:00 · 327 阅读 · 0 评论 -
一个优秀的软件测试工程师需具备的技能
今天早上看到一篇文章写的很好,软件测试工程师的地位在圈里的地位低下,甚至有些技术比较厉害的开发工程师觉得软件测试工程师没有存在的必要,而作为软件测试工程师的一员如何保持自己的技能和竞争力哪?下面简要介绍一下软件测试从低阶到高阶之路:1.功能测试:功能测试是最基本的测试,保证可用性和正确性;编写测试用例一般用到的方法:等价类划分,边界值分析,错误推测,因果图,判断表驱动,正交试验法,功能图,最关键...原创 2020-02-05 17:07:36 · 317 阅读 · 0 评论 -
linux中模拟延时与丢包的实现
延迟模拟:1模拟eth0 网卡传输设置延迟为100ms发送# tc qdisc add dev eth0 root netem delay 100ms2设置带有波动的延迟情况,该命令将 eth0 网卡的传输设置为延迟 100ms ± 10ms (90 ~ 110 ms 之间的任意值)发送。# tc qdisc add dev eth0 root netem delay 100ms 10m...原创 2020-02-05 16:41:06 · 470 阅读 · 0 评论 -
高级测试开发面试题
高级测试开发面试题:一、java基础1)java中有哪些容器,区别和特点是什么https://blog.csdn.net/qq_38774221/article/details/989744172)HashMap和HashTable的区别3)Java中抽象类和接口的区别抽象类:1、可以有默认的方法实现/子类使用继承extends关键字,只有子类中有一个抽象方法,它就是抽象的,可以存在非...原创 2020-01-06 10:52:27 · 2376 阅读 · 0 评论 -
MyBatisPlus自动生成代码springboot+mybatis+mysql 以及动态sql生成方法(测试可用版)
用了一段时间的springboot,想着百度一下自动生成代码的方式,包括后面如何生成动态sql方法的方式。摸索了几天,整理一下:**1 自动生成代码方式:com.baomidou.mybatisplus**mvn配置:<!--mybatis-plus--> <dependency> <groupId>com.baomidou</gro...原创 2019-10-25 10:29:40 · 3414 阅读 · 1 评论 -
一、JDK常用的包
◆java.lang: 这个是系统的基础类,比如String、Math、Integer、System和Thread,提供常用功能。在java.lang包中还有一个子包:java.lang.reflect用于实现java类… ◆java.io: 这里面是所有输入输出有关的类,比如文件操作等 ◆java.net: 这里面是与网络有关的类,比如URL,URLConnection等。 ◆jav...原创 2018-04-24 13:26:21 · 1022 阅读 · 0 评论 -
二、Get和Post的区别
1.get是从服务器上获取数据,post是向服务器传送数据, 2.get传送的数据量较小,不能大于2KB。post传送的数据量较大,一般被默认为不受限制。 3.get安全性非常低,post安全性较高。但是执行效率却比Post方法好。 4.在进行文件上传时只能使用post而不能是get。...原创 2018-04-24 13:27:03 · 373 阅读 · 0 评论 -
三、Java面向对象编程有四个特征
面向对象编程有四个特征:抽象,封装,继承,多态。 封装,也就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者 对象操作,对不可信的进行信息隐藏。 继承是指使用现有类的所有功能,并在无需重新编写原来的类的情况下对这些功能进行扩展。 通过继承创建的新类称为“子类”或“派生类”。被继承的类称为“基类”、“父类”或“超类”。 继承的过程,就是从一般到特殊的过程。要实现继...原创 2018-04-24 13:29:04 · 1131 阅读 · 0 评论 -
四、StringBuffer StringBuilder String 区别
String 字符串常量 不可变 使用字符串拼接时是不同的2个空间 StringBuffer 字符串变量 可变 线程安全 字符串拼接直接在字符串后追加 StringBuilder 字符串变量 可变 非线程安全 字符串拼接直接在字符串后追加1.StringBuilder执行效率高于StringBuffer高于String. 2.String是一个常量...原创 2018-04-24 13:31:59 · 316 阅读 · 0 评论 -
五、Hashtable与HashMap的区别
HashMap不是线程安全的,HashTable是线程安全。 HashMap允许空(null)的键和值(key),HashTable则不允许。 HashMap性能优于Hashtable。Map 1.Map是一个以键值对存储的接口。Map下有两个具体的实现,分别是HashMap和HashTable. 2.HashMap是线程非安全的,HashTable是线程安全的,所以HashMap...原创 2018-04-24 13:33:02 · 279 阅读 · 0 评论 -
六、九大隐式对象(JSP的9大内置对象)
输入/输出对象: request表示HttpServletRequest对象。它包含了有关浏览器请求的信息,并且提供了几个用于获取 cookie, header, 和session数据的有用的方法。 response表示HttpServletResponse对象,并提供了几个用于设置送回 浏览器的响应的方法(如 cookies,头信息等) out是j...原创 2018-04-24 13:33:45 · 827 阅读 · 0 评论 -
七、Forword(请求转发)与Redirect(重定向)
1、从数据共享上 Forword是一个请求的延续,可以共享request的数据 Redirect开启一个新的请求,不可以共享request的数据 2、从地址栏 Forword转发地址栏不发生变化 Redirect转发地址栏发生变化...原创 2018-04-24 13:35:59 · 754 阅读 · 0 评论 -
八、JQurey总结
八、JQurey总结 jquery是一个轻量级的js框架,具有跨浏览器的特性,兼容性好, 并且封装了很多工具,方便使用。 常用的有: 选择器 ,dom操作 ,ajax(ajax不能跨域) ,特效,工具类...原创 2018-04-24 13:36:28 · 291 阅读 · 0 评论 -
九、XML和Json的特点
Xml特点: 1、有且仅有一个根节点; 2、是独立与软件和硬件的信息传输工具(传输量较大) 3、所有的标签都需要自定义 4、仅仅是纯文本文件 Json(JavaScript Object Notation)特点: json分为两种格式: json对象(就是在{}中存储键值对,键和值之间用冒号分隔, 键 值 对之间用逗号分隔),json数组(就是[]中存储多个...原创 2018-04-24 13:37:43 · 379 阅读 · 0 评论 -
十、request.getSession( )、reqeust.getSession(false)和 request.getSession(true)
getSession()/getSession(true):当session存在时返回该session,否则新建一个 session并返回该对象getSession(false):当session存在时返回该session,否则返回null原创 2018-04-24 13:38:29 · 342 阅读 · 0 评论 -
Struts2+Spring3+Hibernate4+Maven+EasyUI整合入门视频
https://pan.baidu.com/s/1bpjjRo7原创 2017-12-03 21:59:00 · 704 阅读 · 0 评论 -
mysql-connector-java 6.x配置问题解决方案
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close" p:driverClassName="com.mysql.cj.jdbc.Driver" p:url="jdbc:mysql://localhost:3306/sam原创 2017-12-06 19:41:53 · 994 阅读 · 1 评论 -
Java中可变长参数的使用及注意事项
Java中可变长参数的使用及注意事项在Java5 中提供了变长参数(varargs),也就是在方法定义中可以使用个数不确定的参数,对于同一方法可以使用不同个数的参数调用,例如 print("hello");print("hello","lisi");print("hello","张三", "alexia");下面介绍如何定义可变长参数 以及如何使用可变长参数。1. 可变长参转载 2015-11-12 17:25:27 · 385 阅读 · 0 评论 -
JUnit 4测试驱动开发结构图
转载 2015-11-12 17:29:05 · 639 阅读 · 0 评论 -
java内存回收机制
引言 Java的堆是一个运行时数据区,类的实例(对象)从中分配空间。Java虚拟机(JVM)的堆中储存着正在运行的应用程序所建立的所有对象,这些对象通 过new、newarray、anewarray和multianewarray等指令建立,但是它们不需要程序代码来显式地释放。一般来说,堆的是由垃 圾回收 来负责的,尽管JVM规范并不要求特殊的垃圾回收技术,甚至根本就不需要垃圾回收,但是由于内存的有限原创 2015-11-18 15:09:37 · 395 阅读 · 0 评论