微软DevOps之Jmeter集成方案_第1页
微软DevOps之Jmeter集成方案_第2页
微软DevOps之Jmeter集成方案_第3页
微软DevOps之Jmeter集成方案_第4页
微软DevOps之Jmeter集成方案_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 微软DevOps之Jmeter集成方案目 录 TOC o 1-3 h z u HYPERLINK l _Toc526840594 1.背景 PAGEREF _Toc526840594 h 3 HYPERLINK l _Toc526840595 2.Jmeter介绍 PAGEREF _Toc526840595 h 3 HYPERLINK l _Toc526840596 3.Demo项目介绍 PAGEREF _Toc526840596 h 4 HYPERLINK l _Toc526840597 4.流水线设计图 PAGEREF _Toc526840597 h 7 HYPERLINK l _Toc

2、526840598 5.流水线搭建 PAGEREF _Toc526840598 h 8 HYPERLINK l _Toc526840599 6.总结 PAGEREF _Toc526840599 h 22背景本文探讨的是微软Azure DevOps Server(TFS)与自动化测试工具Jmeter的集成。近几年很多企业都在推行DevOps,而DevOps所带来的一系列转变又给测试人员带来了巨大的挑战。DevOps提倡开发,测试,运维之间的沟通合作,在采用了自动化CI/CD流水线进行部署之后,部署频率的加快给测试团队的工作效率带来了前所未有的挑战,以往依赖手工的测试方式变成系统的瓶颈。测试作为D

3、evOps中的重要一环,势必需要实现自动化,不仅在开发阶段就要进行一系列的测试,在产品上线后也需要验证其可靠性,如何提高测试的效率和质量成为急需解决的当务之急。Jmeter介绍Apache JMeter是Apache组织维护的基于Java的开源压力测试工具。用于对软件做压力测试,它最初被设计用于针对Web应用的测试,后来扩展到其他测试领域。它可以用于测试静态和动态资源,例如静态文件、Java 小服务程序、CGI 脚本,Java对象、数据库,FTP 服务器,等等。JMeter 可以用于对服务器、网络或应用模拟巨大的负载,在不同压力类别下测试它们的强度和分析整体性能。另外,JMeter能够对应用程

4、序做功能/回归测试,通过创建带有断言的脚本来验证你的程序是否返回你期望的结果。使用Jmeter进行自动化测试的优点:测试脚本维护方便支持功能测试和性能测试开源免费,100%基于Java编写,可集成到其他系统,可拓展各个功能插件多平台支持,可在Linux,Windows,Mac等支持java的系统上运行支持自带proxy或badboy录制测试脚本,可以快速的形成测试脚本Demo项目介绍为了能够更好的说明Jmeter的使用场景,我们使用了以下示例程序作为被测目标程序,并通过Azure DevOps Server集成Jmeter的方式将测试流程与企业日常开发模式的匹配方式进行说明。使用Azure D

5、evOpsServer(TFS)的来针对Jmeter测试用例脚本进行版本管理,CI/CD调用测试用例脚本针对部署于Azure App Service的被测应用,完成接口测试,回归测试,性能测试。项目介绍微软提供的一套以凤凰项目小说中的PartsUnlimited公司为背景的样例程序,提供了完整的应用场景,此系统由三部分构成:使用ASP.NET Core电子商务网站使用开源的Java和MongoDB的生产管理系统中间件系统PartsUnlimited 样例项目接口代码以下代码是标准的rest api实现,具备一定的普遍性源码地址:/Microsoft/PartsUnlimited流水线设计图为了

6、能够和企业日常研发流程进行匹配,我们设计了以下CI/CD流水线。在很多偏传统开发模式的企业中,开发和测试是不同的团队,因此使用不同的流水线更加匹配这个场景。开发根据需求编写完相关代码后提交git版本库,自动触发CI流水线,执行单元测试。测试人员手动触发CD流水线将对应版本部署到测试(Dev)环境,CD流程自动执行接口测试。测试人员手动触发CD流水线将对应版本部署到QA环境,部署流程自动调用回归测试脚本。针对性能测试,测试人员手动触发CI流水线。以上CD流程都可调整为自动化执行,按实际情况调整。下面让我们来看看如何使用Azure DevOps Server(TFS)集成Jmeter测试工具。流水

7、线搭建首先,我们需要搭建Jmeter的环境,Jmeter本身支持单机部署和集群部署,小编这里为了简化环境使用了单机部署。搭建Jmeter环境在TFS agent上部署Jmeter4.0,下载链接如下,直接解压即可,需要java8以上。详情地址:/download_jmeter.cgi对于集群环境部署不做过多描述。Jmeter测试用例脚本编写接口测试脚本,通过productId,查询商品详细信息并编写相应的断言,验证返回结果是否正确,保存为product-detail-I.jmx并提交到脚本库。项目结构考虑到测试人员和开发人员所属不同部门,我们将项目源码和测试脚本分别存放在两个不同的git库。T

8、FS调用Jmeter脚本参考如下echooffFOR /f %i IN (dir /B %1*.jmx) DO (md%2dashboard%iC:apache-jmeter-4.0binjmeter-n -t %1%i -l %2report%ireport.csv-j %2log%i.log -e -o%2dashboard%i)%1为脚本路径 %2为日志报告路径参数释义如下持续集成配置截图如下发布结果持续部署此Demo项目设计三个环境用作演示,dev环境主要用于接口测试,QA环境主要用于回归测试和性能测试,其他测试类型这边不做考虑。自动化编译完成后测试人员获取编译版本号触发部署到Dev环

9、境,并自动执行接口测试,接口测试脚本提前提交到测试脚本库(测试脚本与环境相关的变量后续可以通过TFS部署任务统一替换,目前固定为dev环境)。部署到Azure APP Service调用测试脚本注意:部署完成后测试执行前如何保证应用已经就绪,需要添加一个验证环节。在接口测试任务项上添加 预先部署条件/入口,配置一个api请求的验证功能,只有当验证通过才能执行后续的任务。相关文档:/zh-cn/azure/devops/pipelines/release/approvals/index?view=vsts配置截图部署过程部署结果回归测试与此方式相同,这里不做阐述。性能测试假设已有性能测试环境,测

10、试场景和测试脚本,性能测试通过独立的CI流水线由测试人员手动触发。方式如下:1. 通过Jmeter命令行调用测试报表获取2.通过利用 AzureDevOps的功能,使用基于云的负载测试提供更大规模的集群压力测试能力,避免本地部署大量测试资源的麻烦。这里有两种方式:第一种,通过Azure DevOps 自动配置负载生成服务器快速生成负载,测试完成后自动销毁,使用这些服务器将收取VUM(virtual user minutes)费用。第二种,可以使用自己的服务器生成负载,这些服务器可以是本地服务器也可以是自己订阅中创建的服务器。详情地址:/devops/2016/05/20/feature-preview-creating-load-tests-using-http-archive/devops/2016/09/27/run-cloud-based-load-tests-using-your-own-machines-a-k-a-bring-your-own-subscriptio

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论