自动化测试、压力测试、持续集成

这篇具有很好参考价值的文章主要介绍了自动化测试、压力测试、持续集成。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

因为项目的原因,前段时间研究并使用了 SoapUI 测试工具进行自测开发的 api。下面将研究的成果展示给大家,希望对需要的人有所帮助。

SoapUI 是什么?

SoapUI 是一个开源测试工具,通过 soap/http 来检查、调用、实现 Web Service 的功能/负载/符合性测试。该工具既可作为一个单独的测试软件使用,也可利用插件集成到 Eclipse,maven2.X,Netbeans 和 intellij 中使用。

SoapUI 的安装

SoapUI 的安装

下载地址,最好下载最新版本安装包,因为 SoapUI 是基于 java 开发的测试工具,3.0 以前版本的安装包没有集成 JRE,这样就得自己安装和配置 java 运行环境了。

SoapUI 的使用

1. 在主界面 File 菜单,点击“New REST Project”,填写你想要测试的url,根据我们的项目 Teacher Site 中的 url 举例:https://teacher-test.grapecitydev.com:

自动化测试、压力测试、持续集成,自动化测试,软件测试,软件测试工程师,压力测试,功能测试,软件测试,自动化测试,程序人生,职场和发展

参照下图需要在 Resource 输入框输入 /Login/Login 路由,并在 Params 中输入登录时需要的查询参数 accountName 和 password。

自动化测试、压力测试、持续集成,自动化测试,软件测试,软件测试工程师,压力测试,功能测试,软件测试,自动化测试,程序人生,职场和发展

2. 点击绿色按钮,SoapUI 发送登录请求,可以在右侧框中看到登录请求返回的结果。

根据 Teacher site 项目的业务需求,发送 Login 请求完成后还得发送 SchoolItemChange 接口才会返回用户登录成功后认证的 Token,如下图中 Set-Cookie 的值将会在下一个 GetOverview 接口的请求头中 Cookie 属性使用:

自动化测试、压力测试、持续集成,自动化测试,软件测试,软件测试工程师,压力测试,功能测试,软件测试,自动化测试,程序人生,职场和发展

3. 接下来的第三个请求 GetOverview 如下图,在 Header 框中添加 Cookie 属性,值就是上一个请求 SchoolItemChange 返回的 Set-Cookie 值:

自动化测试、压力测试、持续集成,自动化测试,软件测试,软件测试工程师,压力测试,功能测试,软件测试,自动化测试,程序人生,职场和发展

自动化测试

其实以上三个接口的调用,只是简单的测试接口是否调用正常,如果想要对三个接口的调用进行自动化测试,请看下面的分解:

1. 右键每一个接口下的 Request 请求,如图所示,选择”Add TestCase”项,依次为以上三个接口设置 Test Case,在 TestSteps 下分别有 Login,SchoolItemChange,GetOverview 三个 TestCases。

自动化测试、压力测试、持续集成,自动化测试,软件测试,软件测试工程师,压力测试,功能测试,软件测试,自动化测试,程序人生,职场和发展

2. 大家有没有发现,在 Test Steps 下多了个 Set Cookie 项,这是干什么的呢?

这是通过 Groovy Script 语法,获取上一个请求的返回值(此处是获取 SchoolItemChange 接口的返回值”Set-Cookie”),并将”Set-Cookie”属性值赋予下一个请求 GetOverview 的请求头 Cookie 中,是不是和第2,3条很应景啊?!这样就很好的解决了接口自动化测试,不用复制粘贴请求之间依赖的返回值。

自动化测试、压力测试、持续集成,自动化测试,软件测试,软件测试工程师,压力测试,功能测试,软件测试,自动化测试,程序人生,职场和发展

3. 接下来,就要为测试的接口添加 Assertion 断言,点击左下角的,弹出 Add Assertion 对话框,根据断言注解,选择需要的测试点,例如 Response SLA 表示请求发送后期望的响应时间:

自动化测试、压力测试、持续集成,自动化测试,软件测试,软件测试工程师,压力测试,功能测试,软件测试,自动化测试,程序人生,职场和发展

Contains Assertion 则表示请求返回的字符串中包含指定的字符串。此断言适用对比的内容不超过65535个字符,因为 Soapui 基于 java 语言编写,这是 jvm 支持的最大字符个数:

自动化测试、压力测试、持续集成,自动化测试,软件测试,软件测试工程师,压力测试,功能测试,软件测试,自动化测试,程序人生,职场和发展

4. 为解决上述不能超过65535个字符的问题,则需要为接口添加 Script Assertion,如下代码,表示将本地文件 GetOverview 01.txt 中的内容与请求返回中 HtmlOfPartialView 属性的值进行对比,判断两者内容是否相等:

自动化测试、压力测试、持续集成,自动化测试,软件测试,软件测试工程师,压力测试,功能测试,软件测试,自动化测试,程序人生,职场和发展

5. 双击 Test Case,出现如下图,点击按钮,或者选中 Login 右键选择”Run from here”,则依次执行 Test Steps 步骤,如图所示,出现红色背景 Failed 字样,查看右下角 TestCase Log 框,可以看出是由于 Step 4 GetOverview 接口请求的响应时间 1272ms 大于断言中设置的时间 500ms:

自动化测试、压力测试、持续集成,自动化测试,软件测试,软件测试工程师,压力测试,功能测试,软件测试,自动化测试,程序人生,职场和发展

发送邮件功能

当你希望某个接口请求的结果以邮件方式通知给你时,如下图所示,右键 Test Steps -> Add Step -> Groovy Script,添加 Send Email 脚本,其中 Username 和 Password 分别是公司邮件服务器的账户和密码,Internet Address 即为接收的邮箱地址。

”${teacher-test#TestCase#Getoverview#Response}”的顺序依次为

Test Suite name # Test Case name # Test Step name # Response:

自动化测试、压力测试、持续集成,自动化测试,软件测试,软件测试工程师,压力测试,功能测试,软件测试,自动化测试,程序人生,职场和发展

压力测试

以上是功能性测试,接下来是压力测试,右键 Load Tests 创建测试用例,

Limit:60 即为压力测试的时间 60s,Thread 表示多线程,可以同时运行5个线程,Test Delay * Radom,表示随机延迟的时间数。

min 表示最小响应时间,max 表示最大响应时间,avg 为平均响应时间,last 表示上一次请求响应时间,cnt 表示请求数,tps 表示每秒处理请求数,bps 表示吞吐率,rat 表示错误率。

右键可以为请求添加断言,Max Errors 设置最大的错误数,Step Average 设置期望的平均时间,其他的依次类推:

自动化测试、压力测试、持续集成,自动化测试,软件测试,软件测试工程师,压力测试,功能测试,软件测试,自动化测试,程序人生,职场和发展

如下图,可以选择不同策略的负载和性能测试:

最常用的是简单策略(Simple),如果你想运行功能测试,并想在10秒内延迟5个线程,则 Threads 设置为5,延迟 1000s,随机延迟比率0.5(即将导致延误5至10秒)。

自动化测试、压力测试、持续集成,自动化测试,软件测试,软件测试工程师,压力测试,功能测试,软件测试,自动化测试,程序人生,职场和发展

方差策略(Variance),Threads 为方差的线程数量,Interval 为间隔设置所需的值。例如设置20个线程,间隔60和方差0.8,线程的数量将在第一个15秒从20增加到36,然后又减少到20,45秒后继续减少到4个线程,最后等到60秒时返回到初始值20。在统计图中我们很容易遵循这个方差:

自动化测试、压力测试、持续集成,自动化测试,软件测试,软件测试工程师,压力测试,功能测试,软件测试,自动化测试,程序人生,职场和发展

线性策略(Thread),从一个线程到另一个线程的数量的运行。它的主要功能是确定某些统计数据变化或事件发生时的水平,例如设置开始和结束线程值(例如1 - 10),并设置持续时间(此例中每个线程至少30秒)获得准确的测量数据:

自动化测试、压力测试、持续集成,自动化测试,软件测试,软件测试工程师,压力测试,功能测试,软件测试,自动化测试,程序人生,职场和发展

持续集成

在UI界面进行持续集成:右键项目名称 REST Project 1 -> 选择 Launch TestRunner,出现如下图,在 Basic Tab 页选择 TestRunner 安装路径:

自动化测试、压力测试、持续集成,自动化测试,软件测试,软件测试工程师,压力测试,功能测试,软件测试,自动化测试,程序人生,职场和发展

在 Reports Tab 页选择报告输出文件夹:

自动化测试、压力测试、持续集成,自动化测试,软件测试,软件测试工程师,压力测试,功能测试,软件测试,自动化测试,程序人生,职场和发展

点击 Launch 按钮,自动执行测试项目。

通过执行命令进行持续集成,以管理员身份打开 Command Prompt 对话框,执行如下命令:

testrunner.bat -s'teacher-test' -cLogin -r -j -f'D:\Trivals\SoapUI\Logs' D:\Trivals\SoapUI\REST-Project-1-project.xml

自动化测试、压力测试、持续集成,自动化测试,软件测试,软件测试工程师,压力测试,功能测试,软件测试,自动化测试,程序人生,职场和发展

该命令行的各个参数含义如下:

s : The TestSuite to run, used to narrow down the tests to run
c : The TestCase to run, used to narrow down the tests to run
r : Turns on printing of a small summary report (see below)
j : Turns on exporting of JUnit-compatible reports, see below
f : Specifies the root folder to which test results should be exported


          【下面是我整理的2023年最全的软件测试工程师学习知识架构体系图】


一、Python编程入门到精通

二、接口自动化项目实战  

自动化测试、压力测试、持续集成,自动化测试,软件测试,软件测试工程师,压力测试,功能测试,软件测试,自动化测试,程序人生,职场和发展

三、Web自动化项目实战

四、App自动化项目实战 

自动化测试、压力测试、持续集成,自动化测试,软件测试,软件测试工程师,压力测试,功能测试,软件测试,自动化测试,程序人生,职场和发展

五、一线大厂简历

六、测试开发DevOps体系 

自动化测试、压力测试、持续集成,自动化测试,软件测试,软件测试工程师,压力测试,功能测试,软件测试,自动化测试,程序人生,职场和发展

七、常用自动化测试工具

八、JMeter性能测试 

自动化测试、压力测试、持续集成,自动化测试,软件测试,软件测试工程师,压力测试,功能测试,软件测试,自动化测试,程序人生,职场和发展

九、总结(尾部小惊喜)

生命不息,奋斗不止。每一份努力都不会被辜负,只要坚持不懈,终究会有回报。珍惜时间,追求梦想。不忘初心,砥砺前行。你的未来,由你掌握!

生命短暂,时间宝贵,我们无法预知未来会发生什么,但我们可以掌握当下。珍惜每一天,努力奋斗,让自己变得更加强大和优秀。坚定信念,执着追求,成功终将属于你!

只有不断地挑战自己,才能不断地超越自己。坚持追求梦想,勇敢前行,你就会发现奋斗的过程是如此美好而值得。相信自己,你一定可以做到!

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

自动化测试、压力测试、持续集成,自动化测试,软件测试,软件测试工程师,压力测试,功能测试,软件测试,自动化测试,程序人生,职场和发展

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你! 

自动化测试、压力测试、持续集成,自动化测试,软件测试,软件测试工程师,压力测试,功能测试,软件测试,自动化测试,程序人生,职场和发展文章来源地址https://www.toymoban.com/news/detail-757860.html

到了这里,关于自动化测试、压力测试、持续集成的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【云原生持续交付和自动化测试】5.2 自动化测试和集成测试

    往期回顾: 第一章:【云原生概念和技术】 第二章:【容器化应用程序设计和开发】 第三章:【基于容器的部署、管理和扩展】 第四章:【微服务架构设计和实现】 第五章:【5.1 自动化构建和打包容器镜像】 5.2.1 什么是自动化测试和集成测试? 云原生的自动化测试和集

    2024年02月14日
    浏览(64)
  • 持续集成下接口自动化测试实践

    目录 :导读 引言 接口自动化测试工具介绍 接口自动化测试在持续集成中的运用 小结 目前很多持续集成项目都需要执行接口层的测试,当你了解其基本概念,理解了接口协议、如何传参、测试原理后,无需 掌握程序语言,使用 行业 内成熟的接口测试 工具,就 可 以快速地

    2023年04月26日
    浏览(47)
  • 通用技术 自动化测试与持续集成方案

    目录 前言: 传统接口测试 接口测试自动化 接口自动化的持续集成 在现代软件开发中,自动化测试和持续集成是两个不可或缺的环节。自动化测试可以提高测试效率、减少人工错误,并确保软件的质量。持续集成则可以帮助开发团队更快地集成和交付代码,提高开发效率和

    2024年02月16日
    浏览(49)
  • App自动化测试持续集成效率提高50%

    持续集成是一种开发实践,它倡导团队成员需要频繁的集成他们的工作,每次集成都通过自动化构建(包括编译、构建、自动化测试)来验证,从而尽快地发现集成中的错误。让正在开发的软件始终处于可工作状态,让产品可以快速迭代,同时还能保持高质量。 Jenkins 是基于

    2024年02月09日
    浏览(49)
  • Apipost自动化测试+Jenkins实现持续集成

    Apipost 自动化测试支持「持续集成」功能,在安装了Apipost的服务器中输入命令,即可运行测试脚本。 创建自动化测试脚本 在创建好的测试用例中选择「持续集成」。 点击新建,配置运行环境、循环次数、间隔停顿后点击保存会生成命令。 安装 Apipost-cli npm install -g apipost-cl

    2024年01月25日
    浏览(67)
  • 这才是自动化测试,资深测试构建持续交付体系(高质量)持续集成...

    软件测试-自动化测试 Python自动化测试:https://www.bilibili.com/video/BV16G411x76E/ 无论是保障质量,还是提升效率,都需要某些持续的能力来支撑他们。 这种支撑能力,可以看作是一种工厂化的流水线能力,业内通常将其统称为持续交付。 从质量保障的角度总体来说,可以将其分为

    2024年02月05日
    浏览(55)
  • Jenkins+Python自动化测试持续集成详细教程

    ​ Jenkins是一个开源的软件项目,是基于java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。由于是基于java开发因此它也依赖java环境,安装之前需要先安装jdk,建议jdk1.8+,安装后配置java环境变量。安装

    2024年02月08日
    浏览(70)
  • Jenkins UI 自动化持续化集成测试

    在官网下载msi 直接安装即可 设置allure 路径 1、创建自由风格项目 2、如果项目在本地,且本地服务器是windows ,找到Jenkins安装根目录,寻找config.xml文件,如下位置: *在config.xml文件内,查找 workspaceDir ,将你的自定义 工作空间根目录 地址替换默认的地址 注释掉的是

    2024年02月07日
    浏览(56)
  • 接口自动化测试持续集成,Soapui接口功能测试参数化

    按照自动化测试分层实现的原理,每一层的脚本实现都要进行参数化,自动化的目标就是要实现脚本代码与测试数据分离。 当测试数据进行调整的时候不会对脚本的实现带来震荡,从而提高脚本的稳定性与灵活度,降低脚本的维护成本。 Soapui最为强大的参数化就是支持groo

    2024年02月01日
    浏览(59)
  • 接口测试 [分享] 自动化测试与持续集成方案--Jmeter 测试接口及性能

    目录 前言: 一、什么是接口测试? 二、接口测试的流程 三、编写接口测试脚本 四、接口持续集成 补上性能测试报告:  接口测试是软件测试中的重要环节,它用于验证系统的不同组件之间的通信和数据传输是否正常。自动化测试和持续集成方案可以帮助测试团队更高效地

    2024年02月15日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包