「2019-11新」jenkins+maven+jmeter组合实现接口自动化测试

该实践需要一下工具:

    1. maven,安装一个maven即可,或者你有java的ide编辑器也行,推荐后者的;
    2. jenkins,如果是公司有,就不需要自己单独安装,如果自己想做更多的实践,可以自己安装一下。这是一个用得最广泛持续集成工具了;
    3. jmeter,在这个教程上,可以不需要自己额外安装,因为maven会帮你下载,当然我想你的本机环境已有

 

step1,新建一个maven项目,pom.xml是关键

「2019-11新」jenkins+maven+jmeter组合实现接口自动化测试_第1张图片

「2019-11新」jenkins+maven+jmeter组合实现接口自动化测试_第2张图片

「2019-11新」jenkins+maven+jmeter组合实现接口自动化测试_第3张图片

「2019-11新」jenkins+maven+jmeter组合实现接口自动化测试_第4张图片

 



    4.0.0

    com.deepexi.qa
    good-api-test
    1.0-SNAPSHOT
    
        
            
                com.lazerycode.jmeter
                jmeter-maven-plugin
                2.9.0
                
                    
                        jmeter-tests
                        
                            jmeter
                        
                    
                
                
                    
                        mysql:mysql-connector-java:8.0.18
                    
                    
                    false

                    true
                
            
        
    
    



    


其实我们在2016年就采用过这种实践了,那时用的是比较原始的办法。而且jmeter-maven-plugi这个插件版本是1.1.x,那时我花了点时间去认真读官网内容,包括例子,正因为那时的折腾,捣鼓,读通读懂,时至今日,我能花小小的半个小时就重拾起。java体系的依赖包管理工具,ant是1.0,maven是2.0,gradle是3.0 。

到这里,我就真得说说,这里你百度到的东西都是陈旧的,可能是被人复制黏贴用烂掉的技术了。我们都是后生仔,要敢于创新。学习真的需要讲究方法,最好的办法就是去官网学习,强迫自己去读英文,有兴趣并且有时间的同学可以把英文翻译成中文教程,这样你的博客必定能涨粉。

「2019-11新」jenkins+maven+jmeter组合实现接口自动化测试_第5张图片

接下来就是把项目上传到gitlab上,折腾了好些时间,原来这里设定不能直接提交到master,git地址是http://gitlab.xxx/qa/goodapitest.git,之后在jenkins需要用到。

 

step2,开发jmx脚本

这步是三步中最重要的一步了。可以说,接口自动化最后的质量就是体现在这。如果是一个全新的被测服务,如果接入了swagger,如果我们不但要做接口自动化测试,还有性能测试常态化的话,我们可以这样:

swagger-codegen-cli-2.2.1.jar

虽然个人习惯用一些新的东西,可是比如说这个swagger-codegen-cli.jar包的话,并不是所有版本都能够执行,有些执行会报错。这个是官方文档里推荐的。如果用brew install 安装的话,安装成功,但是往往不能兼容到swagger2.0的版本会报错。

java -jar swagger-codegen-cli-2.2.1.jar generate -i "http://120.24.57.116:8118/v2/api-docs" -l jmeter

 

java -jar swagger-codegen-cli.jar generate  \
  -i swagger.json  \
  -l jmeter \
  -o ./jmeter \

最后生成的文件有如下:

「2019-11新」jenkins+maven+jmeter组合实现接口自动化测试_第6张图片

可以简单剖析一下,里面的组织方式也是值得我们学习的。通过最简单的修改,就能够跑起来了。

好吧,这种方案我就介绍到此。这种的话,后期的维护成本较高,不利于团队统一管理,下面介绍一种较通用,接近银弹的方式,这种方式是前期开发jmx,测试用例+数据参数化的成本较高,当前已经是不是问题了。

「2019-11新」jenkins+maven+jmeter组合实现接口自动化测试_第7张图片

「2019-11新」jenkins+maven+jmeter组合实现接口自动化测试_第8张图片

不论服务或者api再多接口,我们就都用同一套jmx,维护两张数据库表即可,同样,初始化的时候可以python插入。缺点是,可能会造成性能测试常态化响应时间会偏大,原因是有额外的性能开销。脚本开发好后,将其放置上面maven项目,src/test/jmeter目录下,git commit

 

step3,jenkins配置

jenkins安装三个必要的插件。

  1. Maven Integration
  2. HTML Publishe
  3. Performance

新建一个maven风格的项目

「2019-11新」jenkins+maven+jmeter组合实现接口自动化测试_第9张图片

「2019-11新」jenkins+maven+jmeter组合实现接口自动化测试_第10张图片

「2019-11新」jenkins+maven+jmeter组合实现接口自动化测试_第11张图片

配置好后就尝试运行一下。期间运行几次后,碰到几个问题,一个是html和结果报告路径配置不对,这个根据日志的输出就能很快找到了。另一还碰到了一个问题,就是html样式报告显示不全的问题,解决方案如下:

进入Manage Jenkins-> Script console,输入如下命令并进行执行。

 

System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", "")

当看到如下结果后,则说明配置修改已经生效。

 

Result

Result:

再次进行构建,新生成的HTML就可以正常展示样式了。需要说明的是,该操作对之前构建生成的HTML报告无效。

 

图例:

最后的报告如下:

「2019-11新」jenkins+maven+jmeter组合实现接口自动化测试_第12张图片

你可能感兴趣的:(jenkins,maven,jmeter)