今天使用jmeter在开源的OPMS系统上进行登录——添加新项目——项目管理中4种状态的切换——检查页面上状态——数据库中数据状态是否正确;
![](https://i-blog.csdnimg.cn/blog_migrate/84e258ff54bbbdc83bd4b6243ef98fac.png)
使用到的jmeter元件:
测试计划、线程组、Http请求默认值(填写ip,端口)、HTTP Cookie管理器(像浏览器一样存储和发送cookie(保持登录?),可在查看结果树中查看)、
HTTP信息头管理器(尽可能真实的模拟用户打开浏览器的操作)、HTTP请求(将请求发送到服务器)、JDBC请求(向数据库发起请求,处理返回结果)、
JDBC Connection Configuration (建立与数据库的连接)、固定定时器(每次请求前停留固定时间)、XPath断言(判断**与预期是否一致)、
BeanShell断言(判断**结果是否正确)、察看结果树(可以实时查看每个请求的数据及相应结果)、
调试取样器(显示自定义的变量及值)、正则表达式(用于提取新增项目的id);
可以通过fiddler抓包,然后手写jmeter,projectid为主键,数据库中status有4个值,代表4个状态,页面检查状态为对应汉字,数据库查条件为projectid和status时,名称与添加项目时名称一致(结果不为空);
下图所示为一些关键点的写法,仅供参考;
![](https://i-blog.csdnimg.cn/blog_migrate/2774413857bd4864569974a4c2be250f.png)
![](https://i-blog.csdnimg.cn/blog_migrate/54734a94c77f49a11b7be0862680d58a.png)
![](https://i-blog.csdnimg.cn/blog_migrate/912c282cb4876ee886c287a88e7879e1.png)
上面这种方式需要手动写的地方太多了,下面换种方式,使用循环控制器,目前存在一个问题,新增status=1,循环控制器下第一次变更状态仍然为1;
![](https://i-blog.csdnimg.cn/blog_migrate/c66ade7b24603a5ec9d9cc4288de5c41.png)
![](https://i-blog.csdnimg.cn/blog_migrate/8956fd2c64f6abfef62300136cbcc102.png)
![](https://i-blog.csdnimg.cn/blog_migrate/ee12bc48e8209a0908b619c6fd9ea160.png)
![](https://i-blog.csdnimg.cn/blog_migrate/20841b286a5a465d8f0b9aedc137f641.png)
正则表达式提取新增项目的id,后续的改状态时需要传入id;
![](https://i-blog.csdnimg.cn/blog_migrate/e99520001f3425d20ba82f40d9e24616.png)
一共执行4次状态变更,所以循环控制器次数为4;
![](https://i-blog.csdnimg.cn/blog_migrate/9cd1b3d90de8fcf902af0c2dd825ebaa.png)
![](https://i-blog.csdnimg.cn/blog_migrate/c6b8c8cac05235c2f8ad4318798d4ae3.png)
![](https://i-blog.csdnimg.cn/blog_migrate/d8f1f705769c37a69b396231e494a547.png)
变更状态传入id和status;
![](https://i-blog.csdnimg.cn/blog_migrate/ca4f11749d8f8d2442ee8cdd59cbd100.png)
查看页面改变后的状态是否正确;
![](https://i-blog.csdnimg.cn/blog_migrate/ea6eec7a610e3408fe5b73b1f5c5e801.png)
![](https://i-blog.csdnimg.cn/blog_migrate/eed8e9682a2149745170129a0e3c34d8.png)
jdbc请求响应结果为count(*) 数字,所以JDBC请求断言可以添加为响应断言;
![](https://i-blog.csdnimg.cn/blog_migrate/6cf601c16db15a0448594405c7b90fce.png)
![](https://i-blog.csdnimg.cn/blog_migrate/d65b2919a3b770de86adaeb3b526ff73.png)