发表于: 2017-05-28 19:54:34
2 1331
今天完成;的事情:
将任务部署到远程服务器上,并使用Jmeter进行测试
Jmeter使用BadBoy录制Web脚本进行测试;
明天计划的事情:
必须搞定memcache,然后开始任务8
遇到的问题:
在将war包部署到服务器上以后,连接不上数据库:
1,驱动配置有误:driver=com.mysql.jdbc.Driver
2,数据库连接地址有误:url=jdbc:mysql://localhost:3306/test?3useUnicode=true&characterEncoding=utf8
3,密码或帐号有误:username=root, password=root
4,数据库未启动或无权访问
5,项目未引入对应的驱动jar包mysql-connector-java-5.1.6-bin.jar
6,mysql root没有远程访问的权限,需要增加权限,增加权限的步骤如下:
进入mysql数据库:
grant all privileges on *.* to 'root'@'%' identified by 'root' with grant option;
flush privileges;
以上方法都试了一遍,发现还是有问题,我继续在网上查,分析了一下,服务器上部署的其它项目是可以访问到数据库的,于是我把问题聚焦在了c3p0连接池的配置上面:
<!-- 关键配置 -->
<!--连接池中保留的最小连接数。 -->
<property name="minPoolSize">
<value>50</value>
</property>
<!--连接池中保留的最大连接数。Default: 15 -->
<property name="maxPoolSize">
<value>1000</value>
</property>
<!--初始化时获取的连接数,取值应在minPoolSize与maxPoolSize之间。Default: 3 -->
<property name="initialPoolSize">
<value>100</value>
</property>
<!--最大空闲时间,60秒内未使用则连接被丢弃。若为0则永不丢弃。Default: 0 -->
<property name="maxIdleTime">
<value>60</value>
</property>
<!--当连接池中的连接耗尽的时候c3p0一次同时获取的连接数。Default: 3 -->
<property name="acquireIncrement">
<value>50</value>
</property>
<!--JDBC的标准参数,用以控制数据源内加载的PreparedStatements数量。但由于预缓存的statements 属于单个 connection而不是整个连接池。所以设置这个参数需要考虑到多方面的因素。
如果maxStatements与maxStatementsPerConnection均为0,则缓存被关闭。Default: 0 -->
<property name="maxStatements">
<value>0</value>
</property>
<!--每60秒检查所有连接池中的空闲连接。Default: 0 -->
<property name="idleConnectionTestPeriod">
<value>60</value>
</property>
<!--定义在从数据库获取新连接失败后重复尝试的次数。Default: 30 -->
<property name="acquireRetryAttempts">
<value>10</value>
</property>
<property name="acquireRetryDelay">
<value>100</value>
</property>
<!--获取连接失败将会引起所有等待连接池来获取连接的线程抛出异常。但是数据源仍有效 保留,并在下次调用 getConnection()的时候继续尝试获取连接。如果设为true,那么在尝试
获取连接失败后该数据源将申明已断开并永久关闭。Default: false -->
<property name="breakAfterAcquireFailure">
<value>false</value>
</property>
<!--因性能消耗大请只在需要的时候使用它。如果设为true那么在每个connection提交的 时候都将校验其有效性。建议 使用idleConnectionTestPeriod或automaticTestTable
等方法来提升连接测试的性能。Default: false -->
<property name="testConnectionOnCheckin">
<value>false</value>
</property>
<property name="testConnectionOnCheckout">
<value>false</value>
</property>
</bean>
将每一个property的意思都思考了一下,做了注释,修改以后,发现就可以访问到数据库啦。
c3p0的配置这一块一定得注意好了!
收获:
1)关于Jmeter测试,一直觉得它的功能非常强大,首先新建一个线程组,然后添加HTTP请求,在这个请求上我们要监听三方面的数据:
图形结果、察看结果树、聚合报告
2)使用Badboy录制web脚本,并用Jmeter进行http接口测试
于是我在Badboy的搜索框中先输入ptteng.com进入到葡萄藤首页,同时在Badboy中就会录制一条记录,然后我点击“登陆”进入到登陆界面,整个过程就都被记录了下来,左侧栏可以看到相关联的接口
使用Badboy导出jmx文件,可以使用JMeter对http接口进行测试:
使用JMeter打开“葡萄藤.jmx"这个文件
添加“图形结果”、“察看结果树”和“聚合报告”三个监听
线程组设置:
线程数:5
Ramp-Up Period: 10s
循环次数:20次
得到的聚合报告如下图所示:
上图中,各列表示的含义如下:
刚刚接触JMeter,要学的东西还有很多,努力~
评论