压测某HR系统,遇到的坑

遇到的问题:当多个线程组公用一个公共模块功能的时候(登陆生成的cookies信息,文件的写入操做),此时出现跨域问题

场景分析: 跨域:指的是浏览器不能执行其余网站的脚本。它是由浏览器的同源策略形成的,是浏览器对javascript施加的安全限制。 例如:a页面想获取b页面资源,若是a、b页面的协议、域名、端口、子域名不一样,所进行的访问行动都是跨域的,而浏览器为了安全问题通常都限制了跨域访问,也就是不容许跨域请求资源。注意:跨域限制访问,实际上是浏览器的限制。理解这一点很重要!!!javascript

未解决前方案:动态传入固定的变量,最后读到的始终是变量最后赋值的那个变量(好比我有8个线程组,每一个线程组都有一个相同的变量名称,最终脚本执行的时候,只会拿到最好一次赋值的变量)java

解决后的方案:为了防止变量冲突,把公公共的采样器私有化,把动态变量写死,尽可能用不一样的ip参数来替换原来动态重复的参数git

遇到的问题:名才hr系统配置ng后,服务为有状态服务,同一台机器IP进行请求时只能单一负载到某一台机器上

场景分析: 无状态服务:就是没有特殊状态的服务,各个请求对于服务器来讲统一无差异处理,请求自身携带了全部服务端所须要的全部参数(服务端自身不存储跟请求相关的任何数据,不包括数据库存储信息) 有状态服务:与之相反,有状态服务在服务端保留以前请求的信息,用以处理当前请求,好比session等sql

解决办法:本着不修改项目代码的前提下,仅修改http请求访问地址为多个ip的形式进行内网访问(把ng域名请求拆分红8个线程组进行服务ip请求),这样既解决了单一负载的问题,也解决了外网带宽上限问题数据库

遇到的问题:指定运行某个文件下的所有jmx文件

场景分析: 因本次压测不在公司内网环境下,没法使用svn或git的前提下,执行压测时须要读取执行jmx文件,故把要执行的文件所有上传到指定的文件夹当中跨域

解决办法: 修改pom.xml文件,把要执行的jmx脚本所在的文件夹名称进行动态传参(mvn clean verify -Djmx.filesDirectory.dir=${filesDirectory} -Dargs.filesDirectory.dir=${filesDirectory} -Djmeter.threadCount=${threadCount} -Djmeter.duration=${duration} -Djmeter.loopCount=${loopCount} -PLoad) <!--指定运行某个目录下jmx文件--> <jmeter.jmx.dir>${jmx.filesDirectory.dir}</jmeter.jmx.dir> <jmeter.args.dir>${args.filesDirectory.dir}</jmeter.args.dir> <!--引用jmeter.jmx.dir进行传值转化指定--> <testFilesDirectory>${jmeter.jmx.dir}</testFilesDirectory>浏览器

遇到的问题:批量启动/中止监控费时费力,启停成本高

场景分析: 本次压测执行脚本没有把easyNmon监控集成到pipeline代码中,致使前期每次压测都须要手工去开启/中止监控安全

解决办法: 利用jenkins job 把pipeline进行单独抽离,而后经过遍历机器ip的方式进行启停服务器

遇到的问题:jmeter参数化文件取随机行数的问题

场景分析: 3万个员工进行调岗申请,但愿岗位是动态的,那么就须要多岗位进行随机取值cookie

解决办法: 方法1:利用jmeter的插件(random csv set data),能够支持参数化文件的按行随机取值 方法2:经过sql查询出岗位信息后,对返回的Object用list接收,而后经过random对list的下标进行随机取值

遇到的问题:在jmeter插件中心下载的第三方jar在服务器环境上注入找不到对于的groupId,artifactId以及version

场景分析: 在本地下载jar包后,能正常运行,在服务器端须要注入jar包才能正常运行

解决办法: 好比,如今要注入链接oracle驱动的jar包:ojdbc6.jar(目前不知道groupId,artifactId,version) 可经过访问maven仓库拿到:https://mvnrepository.com/artifact/com.oracle/ojdbc6/11.2.0.3 <dependency> <groupId>com.oracle</groupId> <artifactId>ojdbc6</artifactId> <version>11.2.0.3</version> <scope>test</scope> </dependency>

相关文章
相关标签/搜索