- 博客(72)
- 资源 (10)
- 收藏
- 关注

原创 风铃虫入门教程:快速创建风铃虫
风铃虫实例主要有以下两种构建方式通过风铃虫对象构建 //创建一个提取规则 //该提取规则标识使用 XPATH提取器进行提取,XPATH的表达式为 //h1[@class='topic-_XJ6ViSR']/text() , 该提取提取器的作用顺序是0 FieldExtractRule extractRule = new FieldExtractRu...
2019-12-19 20:21:27
943
1

原创 风铃虫入门教程
风铃虫是一款轻量级的爬虫工具,似风铃一样灵敏,如蜘蛛一般敏捷,能感知任何细小的风吹草动,轻松抓取互联网上的内容。它是一款对目标服务器相对友好的蜘蛛程序,内置了二十余种常见或不常见的浏览器标识,能够自动处理cookie和网页来源信息,轻松绕过服务器限制,智能调整请求间隔时间,动态调整请求频率,防止对目标服务器造成干扰。此外,风铃虫还是一款对普通用户十分友好的工具,它提供的大量链接提取器和内容提取器让...
2019-12-19 17:28:06
839
3

原创 易水公共组件入门教程
在日常开发过程中,发现有一个重要的功能会被经常使用到,但是又没有一个比较好用的功能集合,在开发项目是需要反复配置,造成了大量不必要的重复性简单劳动,因此对日常使用到功能进行了一个通用封装,形成了【易水公共组件】(以后简称组件),方便后期项目开发。 本着"一次开发,开箱即用"的原则,组件在开发时遵守以下几点:开箱即用基本配置,即在开启本组件功能后,无须二次配置即能使用组件的基本工功能。个性配...
2019-10-31 15:45:27
262
原创 oauth2快速入门教程
一 快速启动1 在项目中加入相关的依赖需要 导入 易水公共组件 和 spring-security-oauth2-autoconfigure两个依赖<dependency> <groupId>org.springframework.security.oauth.boot</groupId> <artifactId>spring-...
2019-11-01 10:41:29
1011
原创 swagger-ui快速入门教程
title: swagger ui快速入门教程catalog: truedate: 2019-10-31 15:30:54subtitle: 通过使用易水公共组件快速开启和关闭swagger ui,生成软件接口说明文档header-img: http://static.yishuifengxiao.com/blog/global/backgroup/article.jpgtags:...
2019-10-31 15:49:54
1502
原创 基于易水公共组件的验证码使用入门教程
在日常开发过程中,经常需要使用到验证码功能,在易水风萧通用工具中对常见的 【图形验证码】、【邮箱验证码】、【短信验证码】做一个通用封装。在这三种类型的验证码中,目前仅对图形验证码和邮箱验证码做了缺省性实现,由于短信验证码中短信发送的特殊性,需要用户在开发过程中完成短信发送功能的具体实现。快速启动先引入相关依赖<dependency> <groupId>co...
2019-10-31 15:06:44
287
原创 基于易水公共组件的权限管理系统
快速启动在使用spring security时,可以参考以下步骤在项目中加入 spring security依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</artifactId&...
2019-10-31 09:55:13
211
1
原创 基于易水公共组件的单点登录
如今,随着互联网技术的发展,网络用户规模越来越大,假如公司的每一个应用都建立一个用户系统,不仅极大的增加了开发的工作量,而且容易形成了信息孤岛,用户在使用公司的每个产品时都需要重复注册一次。因此许多公司为了统一管理,建立了统一认证中心,其他的应用需要通过单点登录即可获取用户信息,用户登录该公司的其他应用时也不需要在重新注册,大大节省公司用户导入成本,也提高用户使用体验。对于单点登录(SSO)而...
2019-10-30 17:07:40
203
原创 搭建基于易水公共组件的资源服务器
在使用本组件之前,需要先搭建好认证服务器,其中认证服务器可以根据业务需要进行单机或集群部署。整个系统的结果如图所示在整个系统中 ,认证服务器的作用是产生token和验证token的有效性,资源服务器是根据认证服务器的响应结果决定如何处理请求资源。1 引入依赖完整的pom依赖文件如下<?xml version="1.0" encoding="UTF-8"?>&...
2019-10-30 16:51:30
212
原创 GC活动情况查看与分析
一、查看GC情况1、查找java进程pid,ps -ef |grep java2、查看GC活动,jstat -gcutil 2573参数说明如下:s0:s0区使用率S1:s1区使用率E:eden区使用率O:老年代使用率P:永久区使用率YGC:YGC次数YGCT:总YGC时间,单位sFGC:Full GC次数FGCT:Full GC总时间...
2019-06-13 13:13:31
786
原创 性能问题分析思路串讲
1、tps小、rt大、页面转圈圈* 客户端* 网络* 服务器CPU、负载* oom、gc* 等待磁盘io* web容器排队,连接池* 数据库连接池排队 连接池不释放* 慢查询* 数据库死锁* 线程死锁* 业务逻辑2、rt抖动:gc3、TPS抖动:gc、脚本不精简,脚本中有其他请求,如测当当查询书请求前面有一个首页...
2019-06-13 13:13:14
301
原创 系统架构演变
1、一代架构图一台机器上即部署了应用程序又部署了数据库,db会影响应用的性能,应用程序也会影响db性能,两者相互干扰2、二代架构图一个应用程序,一个db,两台机器分开3、三代架构图随着网络的发展,用户量也越来越大,此时继续沿用二代架构图会导致,server服务器扛不住,于是衍生出三代架构图,如下。ngni...
2019-06-13 13:12:59
441
原创 访问页面转圈圈,怎么分析
测试中碰到响应时间慢、TPS上不去、访问页面转圈圈,该怎么分析?把从发请求到返回请求整个架构图画出来,分析整个链路中哪些地方可能导致这些问题。通常碰到这些问题,都是由以下11种情况导致,下面我们挨个分析,查找问题。1)客户端原因:客户端请求发布出去,有可能导致页面转圈圈排查:请求一下其他地址,若访问其他地址没问题,请求能发出去,则可排除客户端问题。2)网络原因:服务器...
2019-06-13 13:12:45
5007
原创 监控分析思路及简单举例
1、响应时间一般要求1)一般页面响应时间要求响应时间<2s 快响应时间<5s 能接受 响应时间>8s 慢2)一般接口调用时间标准响应时间<100ms快100ms<响应时间<300ms能接受响应时间>500ms慢2、监控分析思路思考:出门发现钱包不在身上,疑是丢了,你该怎么办?出门有...
2019-06-13 13:12:27
1027
原创 user cpu高分析
1、top查找cpu高的进程是哪一个2、shift+P,按CPU降序进行排列,找到CPU占用最高pid3、top -H -p 23731,查找cpu消耗最高的线程栈4、10进制线程id换成16进制,因为线程栈中tid是16进制的printf "%x" 237335、查看线程栈中线程在执行什么方法jstack 23731 | grep 5cb5也可以jstack ...
2019-06-13 13:12:11
1016
原创 18-Jmeter插件
1、插件下载链接:https://pan.baidu.com/s/1RRTgP9pyNe3RY5mM-HutsQ提取码:novg2、插件放到jmeter lib下的ext目录下3、使用插件①jp@gc - Stepping Thread Group与loadrunner类似,可控加压、减压过程②jp@gc - Transactions per Second...
2019-05-27 22:59:17
358
原创 17-Jmeter NO-GUI模式运行并生成报告
1、NO-GUI模式运行1)命令命令行进入jmeter bin 路径,执行jmeter -n -t test.jmx2)参数说明-n 是代表NO-GUI方式的运行-t 是代表要运行的jmeter文件2、NO-GUI模式运行并生成jtl文件1)方法一:脚本中填写jtl路径后以NO-GUI模式运行脚本①填写jtl文件存放路径在查看结果树处,填写jtl文件存放路径,可...
2019-05-27 22:57:26
801
原创 15-Jmeter-beanshell详解
1、beanshell是什么BeanShell是一个小型嵌入式Java源代码解释器,完全兼容java语法。同时beanshell也支持javascript和python的一些语法。2、beanshell常用内置变量1)log写入信息到jmeber.log文件,使用方法:log.info(“This is log info!”);2)vars操作jmeter变量,常用方法:...
2019-05-27 22:52:31
2146
原创 14-Jmeter+ant+jenkins持续集成
1、ant环境准备Ant功能:管理jar包,打包、创建任务执行程序1)下载链接:https://pan.baidu.com/s/18xmAxVYz2xeXcQM8pEL2xg提取码:t5tn2)解压到本地3)环境变量配置ANT_HOME:F:\apache-ant-1.9.6,ant的安装目录path:%ANT_HOME%\bin;配置完成,在cmd中输入a...
2019-05-27 20:14:31
721
原创 13-Jmeter调用java接口
1、创建maven项目1)File-New_Project2)选择maven项目3)输入GroupId、ArtifactId4)点击finish5)导入变化6)maven工程说明7)双击package2、导入jar包Jmeter调用java接口,只用导入两个包即可,即:apache jmeter core、apache jmete...
2019-05-27 20:14:12
1508
原创 Maven环境配置
1、下载maven下载地址:http://maven.apache.org/download.html2、解压1)解压zip文件到本地如F:\apache-maven-3.6.02)配置本地maven仓库地址配置本地maven仓库地址,避免maven下载的jar包放在默认C盘编辑F:\apache-maven-3.6.0\conf\settings.xml...
2019-05-27 20:13:56
209
原创 Java+selenium自动化环境搭建
1、下载安装jdk1)下载地址(32/64位自选)链接:https://pan.baidu.com/s/1bNSK0p466VsjkRue_1xZmQ提取码:mlr92)安装jdk3)Java环境变量配置“计算机-属性-高级系统设置”,单击“环境变量”,在“系统变量”栏下单击“新建”,创建新的系统环境变量JAVA_HOME、CLASSPATH,编辑已有环境变量path。...
2019-05-27 20:13:38
1167
原创 Pycharm配置anaconda环境
1、pycharm配置anaconda环境1)Anaconda概述Anaconda是专注于数据分析的Python发行版本,包含了conda、Python等190多个科学包及其依赖项。Anaconda通过管理工具包、开发环境、Python版本,大大简化了你的工作流程。不仅可以方便地安装、更新、卸载工具包,而且安装时能自动安装相应的依赖包,同时还能使用不同的虚拟环境隔离不同要求的项目。anac...
2019-05-26 21:00:16
1864
原创 Idea创建项目、package、class
1、Idea创建项目1)file-->new-->project2)选择java注意project sdk值,若为No SDK,需如下图修改,修改完成后点击next3)不勾选create project from template4)填写项目名称,点击finish5)点击finish后会可能出现下面两种情况①出现欢迎界面,取消勾选show ...
2019-05-26 20:55:13
1165
1
原创 10-Webservice协议脚本编写
以天气预报为例说明webservice脚本如何编写,天启预报接口地址http://www.webxml.com.cn/WebServices/WeatherWebService.asmx1、添加请求头Webservice协议,参数数xml格式的,必须加一个请求头,Content-Type:text/html2、添加HTTP请求-post3、添加HTTP请求-get...
2019-05-26 15:06:21
2027
原创 09-Jmeter保存响数据到本地文件
压测脚本时可以将响应结果保存到本地,供后续使用,此处以保存sessionid为例,演示说明。1、添加正则,提取sessionidSessionid是保存在响应头里的2、添加beanshell后置处理器,保存响应结果BeanShell中编写脚本FileWriter f = new FileWriter("D:\\cookies.csv",true);BufferedWr...
2019-05-26 15:04:15
719
原创 08-session与cookie简介
1、session①session作用与产生客户端登录成功后,服务器会在服务器端保存一个session,session里存的就是用户信息或者一个用户的对象,同时把这个sessionid返回给客户端。当客户端第二次再请求时,会带上这个sessionid,服务器会先在sessionid里找中有没有这个sessionid,如果找到了就直接进入相应页面,如果没找到就重定向到登录页面。②sess...
2019-05-26 15:00:07
246
翻译 07-Jmeter元件作用域与执行顺序
1、jmeter元件作用域1)sample只对自己的子节点起作用,如HTTP请求、JDBC请求2)逻辑控制器只对自己的子节点起作用,如循环控制器、IF控制器3)配置原件作用于自己的整个作用域,放哪对哪生效4)前置处理器、后置处理器、定时器、断言、鉴定器对其作用范围内的对每个sample都生效2、jmeter元件执行顺序①配置原件②前置处理器...
2019-05-26 14:58:22
282
原创 06-Jmeter数据库脚本编写
1、Oracle脚本编写1)拷贝Oracle驱动复制oracle的JDBC驱动JAR包文件(ojdbc14.jar)到jemeter的lib目录下,ojdbc14.jar一般在oracle安装目录下的jdbc/lib下2)添加JDBC连接池①Database URL数据库地址,格式为jdbc:oracle:thin:@[ip]:[端口]:[实例名]如jdbc:Oracle:...
2019-05-26 14:56:09
440
原创 04-正则表达式
正则通常由两部分组成:元字符+限定符元字符:代表能代表哪些字符限定符:修饰前面元字符数量,只对他前面一个元字符起作用1、常用元字符 元字符 意义 . 匹配除换行符以外的任意字符 \. 表示点,需转义 \n 换行 ...
2019-05-26 14:49:42
229
原创 02-jmeter组件介绍
1、测试计划1)用户定义的变量相当于全局变量,多个线程组都能使用2)独立运行每个线程组不勾选:测试计划下多个线程组并行;勾选:先执行测试计划下第一个线程组,执行完后再执行第二个。3)Run tearDown Thread Group after shutdown of main threads* 此配置需线程组配置为“在取样器错误后要执行的操作为停止测试”才有效...
2019-05-26 14:44:00
1259
原创 01-Jmeter脚本录制
1、loadrunner与jmeter对比1)优缺点* loadrunner底层是C语言,jmeter是java,处理速度上c比java快* c多进程,java单进程,所以loadrunner处理速度应该比jmeter快* jmeter开源、小巧方便2)测试结果差异性jmeter启用长连接后可能会出现测试结果与loadrunner不一致的情况,如loadrunner测...
2019-05-26 14:35:49
231
原创 (十四)Loadrunner压测最大TPS与压测结果分析
1、事物通过率事物通过率=成功事物数/总事物数,业界公认事物通过率标准为99.99%,但涉及到支付的,事物通过率一定要为100%2、不建议使用Lr自带的监控功能lr有提供apache、数据库、linux等资源监控功能,但实际压测时我们一般都都不会用到,压测时我们只用Lr看响应时间、TPS,就足够。如需监控数据库等资源,我们会用其他更专业的工具来监控。3、压测最大TPS方...
2019-05-25 23:00:03
4465
原创 (十三)Loadrunner压测场景介绍
1、前期问题回顾1)lr检查点技巧* 使用检查点会消耗性能,数据库增改删操作可不用检查点,执行完后可直接在数据库查* lr中尽量避免中文检查点,支持不太好2)bbs环境问题处理思路* 检查lampp进程是否还在,若在杀死重新启动原因:程序启动后,就会存储各进程的pid到pid文件中,程序停止的时候,就会从pid文件中删掉这些pid,由于非正常关机导致旧的pid没有被删...
2019-05-25 22:56:47
1320
1
翻译 (十二)Loadrunner处理Socket协议
1、录制脚本1)选择协议2)选择待录制程序位置及脚本路径说明:socket协议肯定是能录制的,若录制内容为空,检查一下是否做了过滤3)启动程序,建立连接演示中socket协议测试工具下载地址链接:https://pan.baidu.com/s/1nzs-_-xuruMQnqqV9BF66A提取码:9kwq4)发送消息,结束录制2、参数化Soc...
2019-05-25 22:51:21
809
翻译 (十一)Loadrunner编写mysql增删改查脚本
1、库文件下载链接:https://pan.baidu.com/s/1cJz-eofNsDrPea2m-14Q1Q提取码:towe将下载的文件分别添加到Loadrunner bin目录和include目录下2、编写脚本1)Vuser_init脚本#define MYSQLSERVER "192.168.68.130"#define MYSQLUSERNAME "...
2019-05-25 22:45:29
501
原创 (十)Loadrunner编写webservice接口脚本
1、新增脚本,选择协议2、导入wsdl路径1)导入步骤2)导入后查看接口3、选择接口,写脚本1)选择接口,填写参数,保存响应结果(可不保存)2)生成脚本Action(){ web_service_call( "StepName=getSupportCity_101", "SOAPMethod=WeatherWebService|WeatherW...
2019-05-25 22:40:09
778
原创 (九)Loadrunner编写Http脚本
1、https请求处理1)录制lr无法直接录制https请求,如非要录制可使用firefox录制2)手写脚本* 脚本前面加web_set_sockets_option("SSL_VERSION","TLS");* 添加证书* 直接走http,让开发不开启https2、脚本编写1)web_url* 特点:只能发送get请求,不能发送post请求*...
2019-05-25 22:34:15
731
原创 JVM简介
一、常见溢出问题1) java.lang.OutOfMemoryError:PermGen space永久带溢出优化:通过MaxPermSize参数设置PermGen space大小; 2) java.lang.OutOfMemoryError:java heap space堆内存溢出 优化:-Xmn(最小值)–Xms(初始值) -Xmx(最大值),手动设置 Heap(堆...
2019-02-26 20:34:54
339
原创 栈内存分析
1、基本概念线程堆栈也称线程调用堆栈,是虚拟机中线程(包括锁)状态的一个瞬间状态的快照,即系统在某一个时刻所有线程的运行状态,包括每一个线程的调用堆栈,锁的持有情况。打印出的线程堆栈的信息包括内容:1)线程名字,id,线程的数量等;2)线程的运行状态,锁的状态(锁被哪个线程持有,哪个线程在等待锁等);3)调用堆栈(即函数的调用层次关系)调用堆栈包含完整的类名,所执行的方法,源代...
2019-02-19 23:17:12
852
网上商城源代码
2014-08-23
EnablerDLL
2014-05-19
《数字信号处理教程》第3版(程佩青_)答案
2012-10-26
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人