- 博客(149)
- 资源 (10)
- 收藏
- 关注
原创 转:自旋锁(spinlock)
自旋锁与互斥锁有点类似,只是自旋锁不会引起调用者睡眠,如果自旋锁已经被别的执行单元保持,调用者就一直循环在那里看是否该自旋锁的保持者已经释放了锁,"自旋"一词就是因此而得名。 由于自旋锁使用者一般保持锁时间非常短,因此选择自旋而不是睡眠是非常必要的,自旋锁的效率远高于互斥锁。 信号量和读写信号量适合于保持时间较长的情况,它们会导致调用者睡眠,因此只能在进程上下文使用(_trylock的
2017-04-20 18:18:06 417
原创 windows平台把UliPad添加到右键菜单
对.py文件支持右键用UliPad打开方式支持: 1.打开注册表(win+R,运行框输入regedit) 2.先对*.py文件进行设置。找到注册表目录HKEY_CLASSES_ROOT\Python.File\shell,在shell文件夹图标上点右键→新建→项,对新项进行命名,这里命什么名 字,在右键将会显示什么名字,比如我的是“Edit with UliPad”。
2017-04-20 18:18:01 412
原创 Jenkins实现不同构建之间进行参数传递
有的时候不同job直接需要传递一个文件名或者路径,这个时候我们不需要传递文件实体,那这个路径如何传递呢?比如有如下两个项目,我想把A的工作目录传递给B,让B使用。 A job配置首先需要安装一个Parameterized Trigger Plugin插件:安装后重启。在A项目配置面板中Post-build Actions选项中选择Trigger parame
2017-04-20 18:17:52 2914
原创 Python接口测试简单框架
用例设计: 执行用例代码:# -*- coding: UTF-8 -*-import xlrd,logging,urllib,urllib2,json,sysfrom pylsy import pylsytable#######################################################################################
2017-04-20 18:17:47 633
原创 Jmeter参数化时通过已有函数实现随机取值
jmeter能用来做参数化的组件有几个,但是都没有随机取值的功能,遇到随机取值的需求怎么办呢?突发奇想,可以用函数__CSVRead()来实现:__CSVRead()CSV file to get values from | *alias:表示要读取的文件路径CSV文件列号| next| *alias:表示当前变量读取第几列数据,注意第一列是0;由此可见我们只需将参数化数据在c
2017-04-20 18:17:42 2400
原创 Jmeter函数组件开发
插件开发方法有两种:一、在jmeter官网下载jmeter源码,在源码里面新加函数,然后导出jar;二、不下载源码,直接导入jmeter相应的jar包,即可开发。(推荐) 下面介绍第二种开发方法:在eclipse新建项目,导入jmeter目录下\lib\ext目录中的的ApacheJMeter_core.jar,继承AbstractFunction类。案例:以下写一个计算阶乘
2017-04-20 18:17:37 569
原创 Tomcat之jvm及连接数设置
一、Tomcat的JVM提示内存溢出查看%TOMCAT_HOME%\logs文件夹下,日志文件是否有内存溢出错误二、修改Tomcat的JVM1、错误提示:java.lang.OutOfMemoryError: Java heap spaceTomcat默认可以使用的内存为128MB,在较大型的应用项目中,这点内存是不够的,有可能导致系统无法运行。常见的问题是报Tomcat内存溢出错
2017-04-20 18:17:33 371
原创 VisualVM监控远程主机上的JAVA应用程序
使用VisualVM监控远程主机上JAVA应用程序时,需要开启远程主机上的远程监控访问,或者在远程JAVA应用程序启动时,开启远程监控选项,两种方法,选择其中一种就可以开启远程监控功能,配置完成后就可以在本地对远程主机上的JAVA应用程序进行监控。1.远程服务器、应用程序配置1.1配合jstatd工具提供监控数据1.1.1创建安全访问文件在JAVA_HOME/bin目录中,创建名称
2017-04-20 18:17:28 804
原创 获取JVM的dump文件
获取JVM的dump文件的两种方式1. JVM启动时增加两个参数:#出现 OOME 时生成堆 dump: -XX:+HeapDumpOnOutOfMemoryError#生成堆文件地址:-XX:HeapDumpPath=/home/liuke/jvmlogs/ 2. 发现程序异常前通过执行指令,直接生成当前JVM的dmp文件,6214是指JVM的进程号j
2017-04-20 18:17:26 698
原创 jmeter正则表达式提取器提取特定字符串后的全部内容
jmeter进行JDBC请求时,请求后的响应结果在传递给下一个请求使用时,需要用到关联,也在jmeter中,关联通过正则表达式提取器实现。但是,在JDBC请求后的响应结果中,往往需要关联的内容是只有左边界而没有右边界的(如下图),此时,我们怎么去关联呢? 其实,实现的关键就在正则表达式的编写,提取一段字符串后所有内容用 [^"]+ 实现,这里的具体实例是cpgroupname\
2017-04-20 18:17:21 1711
原创 mysql数据库开启慢查询日志
修改配置文件在配置文件my.ini中加上下面两句话1 log-slow-queries = C:\xampp\mysql_slow_query.log2 long_query_time=3第一句使用来定义慢查询日志的路径(若是linux系统,会涉及权限问题)第二句使用来定义用时超过过多少秒的查询是慢查询,单位:秒。 查看配置验证是否配置成功://查看慢查询时
2017-04-20 18:17:16 592
原创 正则中需要转义的特殊字符
正则表达式中有一些特殊的字符需要转义,收集整理如下:特殊字符 说明$ 匹配输入字符串的结尾位置。如果设置了 RegExp 对象的 Multiline 属性,则 $ 也匹配 ‘\n' 或 ‘\r'。要匹配 $ 字符本身,请使用 \$。( )标记一个子表达式的
2017-04-20 18:17:12 443
原创 LoadRunner 调用Dll完成加密解密
LoadRunner里的函数比较少,没有MD5、Base64加密。我们可以通过在C++里把一些加解密写成函数,供LR调用。DLL函数编写C++里新建工程Class Library(此处是用VS2005,在VS6是:Win32 Dynamic-Link Library)创建了一个叫LrLoadDll的工程,在LrLoadDll.cpp里编写以下代码:#define LRLOA
2017-04-20 18:17:03 470
原创 loadrunner动态从mysql取值
loadrunner动态从mysql取值 [需要下载跟数据库服务器一致的dll,32位或64位]loadrunner中有参数化从数据库中取值,但是只是静态的,对于一些要实时取值的数据就game over了,比如取短信验证码,因为MySQL中有一个libmysql.dll,里面提供了可以操作数据库的方法,所以我们可以调用这个dll连接数据库实时从数据库中取值 1 Action()
2017-04-20 18:16:58 224
原创 Jmeter对基于websocket协议的压力测试
WebSocket protocol 是HTML5一种新的协议。它实现了浏览器与服务器全双工通信(full-duplex)。 浏览器和服务器只需要要做一个握手的动作,然后,浏览器和服务器之间就形成了一条快速通道。两者之间就直接可以数据互相传送。在此WebSocket 协议中,为我们实现即时服务带来了两大好处:1. Header 互相沟通的Header是很小的-大概只有 2 Bytes
2017-04-20 18:16:49 579
原创 JMeter在Linux系统中的环境变量配置
下载:在线下载jmeter(或者本地上传):wget http://mirrors.tuna.tsinghua.edu.cn/apache//jmeter/binaries/apache-jmeter-3.1.tgz拷贝到安装目录并解压:$ cp apache-jmeter-3.1.tgz /usr/local/jmeter/$ tar zxvf apache-jm
2017-04-20 18:16:45 1450
原创 Linux系统下给非root用户添加sudo权限
Linux系统下给非root用户添加sudo权限有时,在linux系统中非root用户运行sudo命令,会提示类似信息: xxx is not in the sudoers file. This incident will be reported. 这里,xxx是当前用户名,该用户无法执行sudo命令,这时候,解决方法如下:1.进入超级用户模式。也就是输入"su -"
2017-04-20 18:16:40 1777
原创 Selenium的PO模式(Page Object Model)[python版]
Page Object Model 简称POM普通的测试用例代码:....#测试用例 def test_login_mail(self): driver = self.driver driver.get("http://mail.126.com") driver.find_element_by_id("idInput").clear() driver.fin
2017-04-20 18:16:35 2478
原创 charles工具抓包教程(http跟https)
1.下载charles 可以去charles官网下载,下载地址:http://www.charlesproxy.com/download/ 根据自己的操作系统下载对应的版本,然后进行安装,然后打开charles工具 2.设置代理(记住手机跟电脑要在同一个网络,用的同一个路由器) 1).查看默认端口 Proxy->Proxy Settings 在这个页面会看到H
2017-04-20 18:16:31 839
原创 使用visualvm远程监控JVM LINUX服务器配置方法
(1)首先要修改JDK中JMX服务的配置文件,以获得相应的权限:进入$JAVA_HOME所在的根目录的/jre/lib/management子目录下,a. 将jmxremote.password.template文件复制为jmxremote.passwordb. 调整jmxremote.access和jmxremote.password的权限为只读写,可以使用如下命令chmod 6
2017-04-20 18:16:26 403
原创 charles抓包response显示乱码解决办法
使用windows 版本的charles来做代理,发现服务端返回的response会出现中文乱码的情况,查看软件设置,遗憾的是并没有关于编码的选项。好在charles windows版本安装目录下有一个Charles.ini的配置文件,可以通过修改本文件来解决这个问题。具体解决方法:在Charles.ini文件中增加一行vmarg.3=-Dfile.encoding=
2017-04-20 18:16:21 4538
原创 NGINX引入线程池 性能提升9倍
1. 引言正如我们所知,NGINX采用了异步、事件驱动的方法来处理连接。这种处理方式无需(像使用传统架构的服务器一样)为每个请求创建额外的专用进程或者线程,而是在一个工作进程中处理多个连接和请求。为此,NGINX工作在非阻塞的socket模式下,并使用了epoll 和 kqueue这样有效的方法。因为满负载进程的数量很少(通常每核CPU只有一个)而且恒定,所以任务切换只消耗很少的内存,而且
2017-04-20 18:16:17 275
原创 CentOS下Zabbix安装部署及汉化
搭建环境:Centos6.5_x86_64,Zabbix2.4.5,epel 源服务端:1.安装开发软件包yum -y groupinstall "Development Tools"2.安装所需的依赖包yum -y install httpd mysql mysql-server mysql-devel php php-mysql php-commonphp-mbstring php
2017-04-20 18:16:11 386
原创 用jmeter通过ssl验证访问https
找了一个支付宝的网站尝试。https://memberprod.alipay.com/account/reg/index.htm我用的是chrome,点这个小锁如果是IE也可以在网页上右键,属性,高级,证书 看到如下画面,点击copy to file导出证书把导出的证书打成.store设置访问密码添加信任在jmeter中请求设
2017-04-20 18:16:07 610
原创 VMware安装CentOS时,无法以图形界面安装解决办法
有的同学问:用虚拟机软件(vmware、VirtualBox)安装CentOS系统时,安装过程中没有中文,也没有出现图形界面,都是以命令行方式去安装,有时候又会出现图形界面,不知道哪里配置的问题?该怎么破?答:是你把虚拟机分配的内存太小啦(如:512M),需要将虚拟机分配到1G或者更多,安装过程中才会有中文,才会出现图形界面。设置方法:虚拟机设置----内存(见下图
2017-04-20 18:16:02 2138 1
原创 MySQL数据库不能远程访问的解决办法
MySQL数据库不允许从远程访问怎么办?下面提供两种方法:1.改表法MySQL的帐号不允许从远程登陆,只能在localhost。这个时候只要在localhost的那台电脑,登入mysql后,更改 "mysql" 数据库里的 "user" 表里的 "host" 项,从"localhost"改称"%"即可。#mysql -u root -ppwd //MySQL的root
2017-04-20 18:15:57 1052
原创 CentOS6.7搭建LNMP环境
1:查看环境:1 [root@localhost ~]# cat /etc/redhat-release2:关掉防火墙1 #重启后生效开启2 [root@localhost ~]# chkconfig iptables off3 4 or5 6 #即时生效,重启后失效开启7 [root@localhost ~]# service iptables s
2017-04-20 18:15:54 309
原创 jstack+top定位性能问题
定位性能问题,尤其是cpu使用率过高时,经常需要查找cpu消耗较高的线程,然后查看其堆栈,从而进入代码定位问题。 该场景下, jstack+top是一种非常经典的方式。 jstack+top: 1、top -H 查看cpu占用较高的线程,记录十进制的线程id2、jstack 将线程信息dump到文件中,在文件中根据线程id查找该线程的堆栈。 注意,jsta
2017-04-20 18:15:49 501
原创 使用Fiddler进行弱网测试
有时候宽频网路用习惯了…在开发的过程就比较少去考虑最佳化的问题…但当有人反应说「你的网页好慢」甚至当网路速度慢,会造成你的网页跳出什么啊哩不哒的bug时要如何重现呢?我们可以用Fiddler 这套强大的webDebugging 工具…Fiddler是一个web调试代理。它能够记录所有客户端和服务器间的http请求,允许你监视,设置断点,甚至修改输入输出数 据,fiddler包含了
2017-04-20 18:15:45 365
原创 Linux命令之history命令详解
如果你经常使用 Linux 命令行,那么使用 history(历史)命令可以有效地提升你的效率。本文将通过实例的方式向你介绍 history 命令的 15 个用法。使用 HISTTIMEFORMAT 显示时间戳当你从命令行执行 history 命令后,通常只会显示已执行命令的序号和命令本身。如果你想要查看命令历史的时间戳,那么可以执行:# export HISTTIMEFORMAT
2017-04-20 18:15:40 639
原创 Jmeter3.0发布,版本更新都更新了什么
Jmeter已发布了3.0,一个大版本的开源测试工具,加入了一些新的特性及软件的改进。Jmeter已隔10年的大版本更新这是在过去12年里jmeter第一个大版本的更新,jmeter 2.0版本发布在2004年4月,直接从2.14版本跳 至3.0,这意味着什么样呢 大版本本发布,相对与前一个版本本不仅仅是更新几个bug,而是包含实际性的改变,比如:新的特性 、代码的重构、核心的优化
2017-04-20 18:15:35 882
原创 【转】gc日志分析工具
性能测试排查定位问题,分析调优过程中,会遇到要分析gc日志,人肉分析gc日志有时比较困难,相关图形化或命令行工具可以有效地帮助辅助分析。Gc日志参数通过在tomcat启动脚本中添加相关参数生成gc日志-verbose.gc开关可显示GC的操作内容。打开它,可以显示最忙和最空闲收集行为发生的时间、收集前后的内存大小、收集需要的时间等。打开-xx:+ printGCdetails开关,
2017-04-20 18:15:30 357
原创 IOS应用内存释放机制
这是由iOS系统管理决定的,但APP退出在后台后,只有10秒的持续运行时间,然后暂停。但该APP还在内存中,当出现内存警告,也就是别的APP要运行,而此时内存又不足的情况下,系统会回收停在后台APP所占用的内存。如果出现这种情况,那么你再次打开你的APP,就会重新启动。不知道你是为什么要让APP在后台还要继续运行,如果非得这样,那可以使用多线程技术中的gcd,可以让APP退出后继续运行很长一段时间
2017-04-20 18:15:27 457
原创 Linux tree命令
Linux tree命令用于以树状图列出目录的内容。执行tree指令,它会列出指定目录下的所有文件,包括子目录里的文件。语法tree [-aACdDfFgilnNpqstux][-I ][-P ][目录...]参数说明:-a 显示所有文件和目录。-A 使用ASNI绘图字符显示树状图而非以ASCII字符组合。-C 在文件和目录清单加上色彩,便于区分各种类型。
2017-04-20 18:15:23 185
原创 Kerberos简介
Kerberos协议:Kerberos协议主要用于计算机网络的身份鉴别(Authentication), 其特点是用户只需输入一次身份验证信息就可以凭借此验证获得的票据(ticket-granting ticket)访问多个服务,即SSO(Single Sign On)。由于在每个Client和Service之间建立了共享密钥,使得该协议具有相当的安全性。条件先来看看Kerberos协议的
2017-04-20 18:15:18 293
原创 linux命令之awk命令详解
简介awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大。简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各种分析处理。awk有3个不同版本: awk、nawk和gawk,未作特别说明,一般指gawk,gawk 是 AWK 的 GNU 版本。awk其名称得自于它的创始人 Alfred Aho
2017-04-20 18:15:13 158
原创 LoadRunner 实现监控Tomcat
LoadRunenr没有监控Tomcat的专用监控器,为了用lr达到监控tomcat的目的可以通过打开Tomcat自带的Status页面之后,利用lr的关联技术得到相关的数据,把数据输出到lr自定义的监控器中。 1、打开Tomcat的status页面,方法为编辑Tomcat的conf目录下的tomcat-users.xml文件,在文件中添加1 tomcat-users>2
2017-04-20 18:15:08 496
原创 Ant_build.xml的最完整解释
Ant的概念Make命令是一个项目管理工具,而Ant所实现功能与此类似。像make,gnumake和nmake这些编译工具都有一定的缺陷,但是Ant却克服了这些工具的缺陷。最初Ant开发者在开发跨平台的应用时,用样也是基于这些缺陷对Ant做了更好的设计。Ant 与 makefileMakefile有一些不足之处,比如很多人都会碰到的烦人的Tab问题。最初的Ant开发者多次强调”只是我在Tab前面加
2017-04-20 18:15:03 3423 1
原创 性能测试之----瓶颈分析方法
1、内存分析法内存分析用于判断系统有无内存瓶颈,是否需要通过增加内存等手段提高系统性能表现。内存分析需要使用的计数器:Memory类别和Physical Disk类别的计数器。内存分析的主要方法和步骤:(1)首先查看Memory\Available Mbytes指标如果该指标的数据比较小,系统可能出现了内存方面的问题,需要继续下面步骤进一步分析。注: 在UNIX/LINUX中,
2017-04-20 18:14:58 378
原创 HttpClient在HTTP协议接口测试中的使用
TTP协议的接口测试中,使用到最多的就是GET请求与POST请求,其中POST请求有FORM参数提交请求与RAW请求,下面我将结合HttpClient来实现一下这三种形式:一.GET请求: GET请求时,参数一般是写在链接上的,代码如下: 1 public void get(String url){ 2 CloseableHttpClient httpClient = nu
2017-04-20 18:14:54 476
StartIsBack 2.9.0.zip
2020-04-24
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人