压测某HR系统,遇到的坑

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

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

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

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

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

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

解决办法:本着不修改项目代码的前提下,仅修改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万个员工进行调岗申请,希望岗位是动态的,那么就需要多岗位进行随机取值

解决办法: 方法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>

转载于:https://my.oschina.net/u/3222944/blog/3077473

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值