【自动化测试】几种常见的自动化测试框架

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

在软件测试领域,自动化测试框架有很多,这里主要介绍几种常用的自动化测试框架。
【自动化测试】几种常见的自动化测试框架,# 自动化测试,自动化测试,性能测试,单元测试,Jmeter,LoadRunner,pytest,junit

1.pytest

pytest 是 Python 的一种单元测试框架,与 Python 自带的 unittest 测试框架类似,但是比 unittest 框架使用起来更简洁,效率更高。主要有以下几个特点:

  • 简单灵活,容易上手。
  • 支持参数化。
  • 能够支持简单的单元测试和复杂的功能测试,还可以用来做 selenium / appnium 等自动化测试、接口自动化测试(pytest+requests)。
  • pytest 不是 python 内置库,需要单独安装。

使用 pytest 编写用例,必须遵守以下规则:

  • 测试文件名必须以 test_ 开头或者 _test 结尾(如:test_ab.py)
  • 测试方法必须以 test 开头。
  • 测试类命名以 Test 开头。

2.Junit

Junit 是一个 Java 语言的单元测试框架。它由 Kent Beck 和 Erich Gamma 建立,逐渐成为源于 Kent Beck 的 sUnit 的 xUnit 家族中最为成功的一个。 Junit 有它自己的 JUnit 扩展生态圈。多数 Java 的开发环境都已经集成了 Junit 作为单元测试的工具。

Junit 是由 Erich Gamma 和 Kent Beck 编写的一个回归测试框架(regression testing framework)。Junit 测试是程序员测试,即所谓白盒测试,因为程序员知道被测试的软件如何(How)完成功能和完成什么样(What)的功能。Junit 是一套框架,继承 TestCase 类,就可以用 Junit 进行自动测试了。

3.selenium

Selenium 是一个用于 Web 应用程序测试的工具。支持的浏览器包括 IE、Mozilla Firefox、Mozilla Suite 等。这个工具的主要功能包括:测试与浏览器的兼容性——测试你的应用程序看是否能够很好得工作在不同浏览器和操作系统之上。Selenium 是一套完整的 web 应用程序测试系统,包含了测试的录制(selenium IDE),编写及运行(Selenium Remote Control)和测试的并行处理(Selenium Grid)。Selenium 的核心 Selenium Core 基于 JsUnit,完全由 JavaScript 编写,因此可以用于任何支持 JavaScript 的浏览器上。Selenium 可以模拟真实浏览器,自动化测试工具,支持多种浏览器,爬虫中主要用来解决 JavaScript 渲染问题。

selenium 1.0 包括以下两部分:selenium server、 Client Libraries 组成。

Selenium 2 将浏览器原生的 API 封装成 WebDriver API,可以直接操作浏览器页面里的元素,甚至操作浏览器本身(截屏,窗口大小,启动,关闭,安装插件,配置证书之类的),所以就像真正的用户在操作一样。

4.Appium

appium 是当前移动平台上主流的自动化测试工具之一。

appium 是一个合成词,分别由 “application” 的前三个字母和 “Selenium” 的后三个字母组成。application 为 “应用”,我们一般把移动平台上的应用简称为 App。Selenium 是当前主流的 Web UI 自动化测试工具。appium 与 Selenium 之间是有继承关系的。appium 的寓意是:移动端的 Selenium 自动化测试工具

appium 是一个开源自动化测试工具,支持 iOS 和 Android 平台上的原生应用、Web 应用以及混合应用。

  • 原生应用:是指那些用 iOS 或者 Android SDK 开发的应用(App)。
  • Web 应用:是指可以使用移动浏览器(如 iOS 上的 Safari 和 Android 上的 Chrome)访问的应用。
  • 混合应用:是指用原生代码封装网页视图,原生代码和 Web 内容交互的应用。比如, 微信小程序,可以帮助开发者使用网页技术开发应用,然后用原生代码封装。 更重要的是,appium 是一个跨平台的测试工具,它允许测试人员在不同的平台(iOS、 Android)使用同一套 API 编写自动化测试脚本,这大大增加了 iOS 和 Android 测试套件之间代码的复用性。

5.LoadRunner

LoadRunner,是一种预测系统行为和性能的负载测试工具。通过模拟上千万用户实施并发负载及实时性能监测的方式来确认和查找问题,LoadRunner 能够对整个企业架构进行测试。企业使用 LoadRunner 能最大限度地缩短测试时间,优化性能和加速应用系统的发布周期。

5.1 虚拟用户

使用 LoadRunner 的 Virtual User Generator,您能很简便地创立起系统负载。该引擎能够生成虚拟用户,以虚拟用户的方式模拟真实用户的业务操作行为。它先记录下业务流程(如下订单或机票预定),然后将其转化为测试脚本。利用虚拟用户,您可以在 Windows ,UNIX 或 Linux 机器上同时产生成千上万个用户访问。所以 LoadRunner 能极大的减少负载测试所需的硬件和人力资源。

用 Virtual User Generator 建立测试脚本后,您可以对其进行参数化操作,这一操作能让您利用几套不同的实际发生数据来测试您的应用程序,从而反映出本系统的负载能力。以一个订单输入过程为例,参数化操作可将记录中的固定数据,如订单号和客户名称,由可变值来代替。在这些变量内随意输入可能的订单号和客户名,来匹配多个实际用户的操作行为。

5.2 真实负载

Virtual users 建立起后,您需要设定您的负载方案,业务流程组合和虚拟用户数量。用 LoadRunner 的 Controller,您能很快组织起多用户的测试方案。Controller 的 Rendezvous 功能提供一个互动的环境,在其中您既能建立起持续且循环的负载,又能管理和驱动负载测试方案。

而且,您可以利用它的 日程计划服务 来定义用户在什么时候访问系统以产生负载。这样,您就能将测试过程自动化。同样您还可以用 Controller 来限定您的负载方案,在这个方案中所有的用户同时执行一个动作,如登陆到一个库存应用程序,来模拟 峰值负载 的情况。另外,您还能监测系统架构中各个组件的性能,包括服务器、数据库、网络设备等,来帮助客户决定系统的配置。

5.3 定位性能

LoadRunner 内含集成的实时监测器,在负载测试过程的任何时候,您都可以观察到应用系统的运行性能。这些性能监测器为您实时显示交易性能数据(如响应时间)和其它系统组件包括 application server、web server、网路设备和数据库等的实时性能。这样,您就可以在测试过程中从客户和服务器的双方面评估这些系统组件的运行性能,从而更快地发现问题。

利用 LoadRunner 的 ContentCheck TM ,您可以判断负载下的应用程序功能正常与否。ContentCheck 在 Virtual users 运行时,检测应用程序的网络数据包内容,从中确定是否有错误内容传送出去。它的实时浏览器帮助您从终端用户角度观察程序性能状况。

5.4 分析结果

一旦测试完毕后,LoadRunner 收集汇总所有的测试数据,并提供高级的分析和报告工具,以便迅速查找到性能问题并追溯原由。使用 LoadRunner 的 Web 交易细节监测器,您可以了解到将所有的图象、框架和文本下载到每一网页上所需的时间。

例如,这个交易细节分析机制能够分析是否因为一个大尺寸的图形文件或是第三方的数据组件造成应用系统运行速度减慢。另外,Web 交易细节监测器分解用于客户端、网络和服务器上端到端的反应时间,便于确认问题,定位查找真正出错的组件。例如,您可以将网络延时进行分解,以判断 DNS 解析时间,连接服务器或 SSL 认证所花费的时间。通过使用 LoadRunner 的分析工具,您能很快地查找到出错的位置和原因并作出相应的调整。

5.5 重复测试

负载测试是一个重复过程。每次处理完一个出错情况,您都需要对您的应用程序在相同的方案下,再进行一次负载测试。以此检验您所做的修正是否改善了运行性能。

LoadRunner 完全支持 EJB 的负载测试。这些基于 Java 的组件运行在应用服务器上,提供广泛的应用服务。通过测试这些组件,您可以在应用程序开发的早期就确认并解决可能产生的问题。

利用 LoadRunner,您可以很方便地了解系统的性能。它的 Controller 允许您重复执行与出错修改前相同的测试方案。它的基于 HTML 的报告为您提供一个比较性能结果所需的基准,以此衡量在一段时间内,有多大程度的改进并确保应用成功。由于这些报告是基于 HTML 的文本,您可以将其公布于您公司的内部网上,便于随时查阅。

6.Jmeter

Apache JMeter 是 Apache 组织基于 Java 开发的压力测试工具,用于对软件做压力测试。

JMeter 最初被设计用于 Web 应用测试,但后来扩展到了其他测试领域,可用于测试静态和动态资源,如静态文件、Java 小服务程序、CGI 脚本、Java 对象、数据库和 FTP 服务器等等。JMeter 可对服务器、网络或对象 模拟巨大的负载,在不同压力类别下测试它们的强度和分析整体性能。另外,JMeter 能够对应用程序做功能 / 回归测试,通过创建带有断言的脚本来验证程序是否返回了期望结果。为了最大限度的灵活性,JMeter 允许使用正则表达式创建断言。

JMeter 的作用

  • 能够对 HTTP 和 FTP 服务器进行压力和性能测试, 也可以对任何数据库进行同样的测试(通过JDBC)。
  • 完全的可移植性和 100% 纯 java。
  • 完全 Swing 和轻量组件支持(预编译的 JAR 使用 javax.swing.*)包。
  • 完全多线程框架允许通过多个线程并发取样和通过单独的线程组对不同的功能同时取样。
  • 精心的 GUI 设计允许快速操作和更精确的计时。

JMeter 的高可扩展性

  • 可链接的取样器允许无限制的测试能力。
  • 各种负载统计表和可链接的计时器可供选择。
  • 数据分析和可视化插件提供了很好的可扩展性以及个性化。
  • 具有提供动态输入到测试的功能(包括 Javascript)。
  • 支持脚本编程的取样器(在 1.9.2 及以上版本支持 BeanShell)。
  • 缓存和离线分析 / 回放测试结果。

参考资料

【1】自动化测试框架总结
【2】百度百科,LoadRunner
【3】Jmeter 中文网文章来源地址https://www.toymoban.com/news/detail-723688.html

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

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

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

相关文章

  • Selenium自动化测试框架常见异常分析及解决方法

    现象: pycharm中输入from selenium import webdriver, selenium标红 原因1: pycharm使用的虚拟环境中没有安装selenium, 解决方法: 在pycharm中通过设置或terminal面板重新安装selenium 原因2: 当前项目下有selenium.py,和系统包名冲突导致, 解决方法:重命名这个文件 1)未找到响应的浏览器驱动 WebDriv

    2024年02月06日
    浏览(42)
  • 【性能测试】Jenkins+Ant+Jmeter自动化框架的搭建思路

    前言 前面讲了Jmeter在性能测试中的应用及扩展。随着测试的深入,我们发现在性能测试中也会遇到不少的重复工作。 比如某新兴业务处于上升阶段,需要在每个版本中,对某些新增接口进行性能测试,有时还需要在一天中的不同时段分别进行性能测试,如果一味地采取手动

    2024年02月09日
    浏览(50)
  • 前端单元测试与自动化测试实践

    在前端开发中,单元测试和自动化测试是保证代码质量和稳定性的重要手段。通过编写和执行测试用例,可以及早发现代码中的问题,并确保代码在不同环境下的正确运行。本文将介绍前端单元测试和自动化测试的实践,并通过一个示例说明其重要性和具体操作。 前端单元测

    2024年02月12日
    浏览(48)
  • 自动化测试集成指南 -- 本地单元测试

    单元测试 (Unit Test) 是针对 程序的最小单元 来进行正确性检验的测试工作。程序单元是应用的最小可测试部件。一个单元可能是 单个程序、类、对象、方法 等。 如何区分单元测试和集成测试,一般情况下,单元测试应该不依赖数据库,网络,I/O和其他模块,否则就是集成测

    2024年02月16日
    浏览(62)
  • MIL自动化单元测试

    之前学习MIL, 一直想对模型的进行自动化测试,最近正好做了,把心得写下来。 MIL测试就是模型在环测试,通过纯软件仿真的形式,验证模型能否满足功能需求,尽早发现问题。 MIL分为单元测试与集成测试 看图很好理解,集成测试闭环,单元测试开环。 确定被测模型的 输入

    2023年04月09日
    浏览(49)
  • Android 自动化单元测试

    2024年02月13日
    浏览(42)
  • 软件测试之单元测试自动化入门基础

    所谓的单元测试(Unit Test)是根据特定的输入数据,针对程序代码中的最小实体单元的输入输出的正确性进行验证测试的过程。所谓的最小实体单元就是组织项目代码的最基本代码结构: 函数,类,模块 等。在Python中比较知名的单元测试模块: unittest pytest doctest nose 所谓的测试

    2024年02月03日
    浏览(48)
  • Android 手机自动化测试工具有哪几种?

    一、Android手机自动化测试工具,常用的有这7中: 1、首推Appium: 推荐理由:功能非常强大的移动端自动化测试框架,还免费 下载链接:Appium: Mobile App Automation Made Awesome. Appium是一种被广泛使用的自动化测试工具, 它支持iOS和Android平台。 Appium基于WebDriver协议, 可以使用多种

    2024年02月04日
    浏览(41)
  • Python接口自动化之unittest单元测试

    以下主要介绍unittest特性、运行流程及实际案例。 一、单元测试三连问 1、 什么是单元测试?   按照阶段来分,一般就是单元测试,集成测试,系统测试,验收测试。单元测试是对 单个模块 、 单个类 或者 单个函数 进行测试。 将访问接口的过程封装在函数里面; 接口测试就

    2024年02月07日
    浏览(51)
  • 通过自动化单元测试的形式守护系统架构

    目录 0前言 1 背景 2 为什么选择 Archunit 3 Archunit 是什么 4 引入 Archunit 4.1 开始就是如此简单 4.2 如何组织架构规则 4.3 团队如何规范化 通过自动化单元测试的形式守护系统架构是一种有效的方式,可以确保系统在不断演进和修改的过程中保持稳定和可靠。 自动化单元测试是指通

    2024年02月16日
    浏览(52)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包