web全面能测试模型 性能测试包括哪些方面

一、性能测试包括哪些方面

性能测试包括负载测试和压力测试。

性能测试是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。负载测试和压力测试都属于性能测试,两者可以结合进行。通过负载测试,确定在各种工作负载下系统的性能,目标是测试当负载逐渐增加时,系统各项性能指标的变化情况。压力测试是通过确定一个系统的瓶颈或者不能接受的性能点,来获得系统能提供的大服务级别的测试。

性能测试在软件的质量保证中起着重要的作用,它包括的测试内容丰富多样。中国软件评测中心将性能测试概括为三个方面:应用在客户端性能的测试、应用在网络上性能的测试和应用在服务器端性能的测试。通常情况下,三方面有效、合理的结合,可以达到对系统性能全面的分析和瓶颈的预测。

二、软件测试该如何学习

一、学习路线图(点击图片即可放大,可清晰观看)

二、软件测试视频第一阶段-前置基础知识

1、学习目标:

可掌握的核心能力:

1.熟悉计算机相关概念;

2.掌握基础的测试理论;

3.熟练掌握HTML常用标签和语法规范;

4.掌握使用CSS定义网页样式;

5.掌握js的基本用法;

2、知识点:

1)计算机基础

计算机组成部分、*作系统分类、B/S和C/S架构、常用DOS命令、服务器域名

2)测试理论

软件测试的目的、软件测试定义、软件测试原则、产品质量模型、测试基本流程

3)HTML基础

HTML基础语法、标签属性、图片标签、超链接、锚点、表单

4)CSS基础

CSS基础语法、CSS四类选择器、常用文字属性、行高属性、边框、盒子模型、内外边距

5)JS基础

JS基础语法、JS引入方式

三、软件测试视频篇第二阶段-linux和数据库

1、学习目标:

可掌握的核心能力:

1.掌握Linux*作系统按照和配置;

2.熟练掌握Linux常用命令;

3.掌握数据库增删改查*作;

4.熟悉数据库索引、视图、事务、常见函数等高级功能;

5.掌握Redis的string类型、hash类型、set类型、list类型等基本类型和*作;

2、知识点:

1)LINUX(熟悉)

*作系统介绍、*作系统发展历史、CentOS图形界面、文件和目录、常用LINUX命令使用、vim文本编辑器的使用

2)数据库介绍(熟悉)

数据库基本概念、关系型数据库介绍、MySQL安装与使用、Navicat使用

3)SQL语言(重点)

数据表*作、数据*作-增删改查、条件查询、排序、聚合函数、分组、分页、连接查询、自关联、子查询、子查询演练

4)数据库高级功能(了解)

数据库设计、命令行*作数据库、函数、存储过程、视图、事务、索引、外键、用户密码

5)redis数据库功能(掌握)

掌握Redis的string类型、hash类型、set类型、list类型等基本类型和*作;

四、软件测试视频篇第三阶段-测试基础

1、学习目标:

可掌握的核心能力:

1.掌握测试的基本概念和测试常见分类;

2.熟练掌握黑盒测试用例设计方法,进行功能测试用例设计;

3.熟练掌握缺陷报告的编写;

4.熟悉测试管理工具禅道和JIRA的使用

5.掌握项目测试流程;

6.掌握Web项目功能测试分析和用例编写;

7.熟悉测试计划,测试方案,测试报告的核心内容

8.掌握功能测试与数据库的关系

9.掌握Fiddler工具的使用

2、知识点:

1)软件测试理论

软件测试的分类,软件开发模型和测试模型,软件的质量模型,测试用例的定义和要素

2)测试用例设计

等价类方法、边界值方法、因果图、判定表、状态迁移法、正交、场景

3)缺陷管理

缺陷定义、缺陷的判定标准、缺陷报告、缺陷跟踪流程

4)Web项目实战

搭建项目的测试环境,如何快速熟悉项目,项目的测试流程,测试计划和方案,功能测试分析,状态迁移法的使用,流程测试分析,非功能测试分析,测试报告编写,Fiddler抓包

5)App项目实战

6)测试管理工具

禅道的使用,JIRA的使用

五、软件测试视频篇第四阶段-编程+数据结构

1、学习目标:

可掌握的核心能力:

1.掌握Python基础语法,具备基础的编程能力;

2.建立编程思维以及面向对象程序设计思想。

2、知识点:

1)Python开发环境

Python开发环境的搭建、Pycharm使用

2)Python基础

变量以及变量的类型、标识符和关键字、变量名命名方式、算数运算符、变量数据类型转换、输入和输出、注释、if语句基本格式、if…else…语句、if…elif..else语句、逻辑运算符、比较关系运算符、运算符优先级、while循环语法格式、while嵌套应用、break的用法、continue的用法、列表概念及*作、元组概念及*作、字典概念及*作、字符串概念及*作、**概念及*作、for循环及for…else用法、函数的基本语法、函数执行流程、文档注释、带参数的函数、带返回值的函数、函数的嵌套调用、匿名函数、递归函数、局部变量和全局变量、引用、文件的概念、文件的打开与关闭、文件读写,以及文件定位读写、文件、目录相关*作

3)面向对象

面向对象介绍、类和对象的概念、魔术方法的意义及作用、对象成员的访问控制权限、继承的概念及意义、继承、多层继承和多继承、多态的概念以及应用、类属性和实例属性、实例方法、类方法、静态方法、设计模式:单例模式

4)异常处理

理解异常的作用、捕获异常、异常的传递规则、自定义异常

5)模块和包

模块和包的概念、__all__的用法、import语句用法、from...import...用法、from...import*用法

六、软件测试视频篇第五阶段——WEB自动化

1、学习目标:

可掌握的核心能力:

1.能够熟练搭建Web自动化测试环境;

2.熟练掌握元素的定位方法和元素*作;

3.掌握鼠标键盘*作及HTML特殊元素的处理;

4.掌握使用UnitTest管理自动化测试的脚本;

5.熟练掌握PO模式的设计思想,并能够对页面进行封装;

6.掌握数据驱动的实现方式;

7.掌握日志的相关概念,以及日志的收集处理;

8.掌握在实际的项目中如何灵活运用自动化的相关技术。

2、知识点:

1)WEB自动化入门

自动化测试的理论知识、主流的Web自动化测试框架介绍、Selenium的发展历史及工作原理、元素查看工具使用、环境搭建

2)WEB自动化基础

元素基础定位方法、Xpath和CSS元素定位方法、元素常见*作、浏览器*作方法、鼠标键盘*作、显示等待和隐式等待、HTML特殊元素处理、窗口截图、验证码处理

3)WEB自动化中级

UnitTest框架、Fixture、UnitTest断言、参数化、测试报告

4)WEB自动化高级

PO模式、数据驱动、日志处理

5)项目实战

自动化测试流程、项目自动化框架设计、自动化代码实现

七、软件测试视频篇第六阶段——移动自动化

1、学习目标:

可掌握的核心能力:

1.掌握移动端APP测试特性;

2.能够熟练搭建移动自动化测试环境;

3.熟悉appium的工作原理;

4.熟练掌握ADB工具的使用;

5.熟练掌握元素的定位方法、元素*作和手势*作;

6.掌握单元测试框架pytest的使用;

7.掌握YAML数据读写;

8.掌握使用allure生成测试报告;

9.熟练掌握PO模式的设计思想;

10.掌握数据驱动的实现方式;

11.掌握Git的使用方式;

12.掌握Jenkins持续集成的环境配置;

13.掌握在实际的项目中如何灵活运用移动自动化的相关技术。

2、知识点:

1)移动自动化特性

APP应用系统架构、测试环境及发布平台、APP敏捷开发模式、APP应用测试要点、业务功能测试、兼容性测试、安装卸载升级测试、交叉**测试、Push消息测试、性能测试、用户体验测试、稳定性测试

2)移动自动化基础

移动端测试分类及特点、ADB命令及Monkey使用、appium环境搭建、appium工作原理

3)移动自动化中级

APP和手机系统*作、元素定位、元素*作、高级手势*作、混合APP测试、PyTest测试框架、定制测试报告、YAML数据读写

4)移动自动化高级

PO模式、数据驱动、Git、Jenkins持续集成

5)项目实战

APP项目实战

八、软件测试视频篇第七阶段——接口测试

1、学习目标:

可掌握的核心能力:

1.掌握接口及接口测试相关概念;

2.掌握使用Postman进行接口测试;

3.熟练掌握数据库的基本*作和事务*作;

4.掌握requests库使用及脚本封装;

5.掌握接口测试框架的设计和封装;

6.掌握使用持续集成工具管理接口测试脚本;

7.掌握在实际的项目中如何灵活运用接口测试的相关技术。

2、知识点:

1)接口测试基础

接口及接口测试概念、HTTP协议、接口规范、项目环境说明、接口测试流程

2)Postman实现接口测试

Postman介绍和安装、Postman基本用法、Postman高级用法、Postman测试报告、项目实战

3)数据库*作

数据库介绍、数据库基本*作、数据库事务*作

4)代码实现接口测试

Requests库、集成UnitTest、接口测试框架开发、项目实战

5)持续集成

持续集成介绍、Git、Jenkins、持续集成之Postman、持续集成之代码

6)接口测试扩展

Mock测试、接口测试总结

九、软件测试视频篇第八阶段——性能测试

1、学习目标:

可掌握的核心能力:

1.能够熟练搭建性能测试环境;

2.掌握性能测试基础理论;

3.掌握Jmeter常用组件使用;

4.掌握Jmeter编写和录制性能测试脚本;

5.掌握基于jmeter实现单一和混合场景搭建;

6.掌握思考时间、事务、逻辑控制器在性能测试场景的应用;

7.掌握Jmeter常用性能插件进行图表分析;

8.掌握Linux服务型性能监控方法和指标;

9.掌握数据库监控和调优的常见方法。

2、知识点:

1)性能测试基础

性能测试理论、性能测试分类、性能测试常用指标、性能测试流程

2)性能测试工具

常用性能测试工具、Jmeter环境搭建、Jmeter功能概要、元件作用及执行顺序、线程组、参数化、断言、关联、连接数据库、逻辑控制器、定时器、分布式、测试报告

3)项目-接口性能测试

项目API文档分析、接口清单梳理、接口脚本设计、并发数据计算、逻辑控制器项目应用、单一场景搭建、常用响应图表插件及应用

4)项目-web性能测试

脚本录制、正则过滤、cookie管理器、事务控制器、思考时间、混合场景搭建、web性能脚本执行与分析

5)性能测试调优

windows服务器性能监控、linux服务器性能监控、性能测试报告

十、软件测试视频篇第九阶段——综合项目实战

1、学习目标:

可掌握的核心能力:

1.掌握功能测试在真实的项目中如何实施;

2.掌握基于Selenium的Web自动化测试框架搭建和使用;

3.掌握基于Appium的APP自动化测试框架搭建和使用;

4.掌握使用工具实现接口测试;

5.掌握基于Python+Requests库的接口自动化测试框架的搭建和使用;

6.掌握Locust性能测试框架的使用;

7.掌握如何对APP进行性能测试;

8.掌握在实际的项目中如何灵活运用相关测试技术。

2、知识点:

1)项目介绍

项目简介、项目架构

2)功能测试

功能测试设计思路、自媒体端测试、后台管理端测试、用户APP端测试

3)UI自动化测试

Selenium Grid、搭建自动化测试框架、编写自动化测试脚本

4)接口测试

接口测试流程、基于工具的接口测试、基于代码的接口测试

5)性能测试

Locust框架、APP性能测试

三、基于模型测试01

一、概述

   MBT中文名称为基于模型的测试,基于模型的测试属于软件测试领域的一种测试方法。

二、背景

   软件测试是一款软件产品质量的后一道防线,是产品线上前必不可少的、重要的一环。每一款高质量的软件产品背后,都蕴含了大量的测试工作。而且测试工作很可能是软件开发过程中昂贵、劳动密集的工作。在设计测试用例的过程中,或多或少的存在着问题,使得软件测试结果不那么理想。下面引入新的测试方法,基本模型的测试,是自动化测试的一个分支,它将测试用例的设计依托于被测系统的模型,并基于该模型自动生成测试用例的技术。从质量保证的角度来看,我们可以制定测试的内容,但是无法保证测试会覆盖所有可能的组合,而MBT则允许软件开发和测试人员,只关注建立系统的正确性及模型的规范性,再通过专门的MBT工具根据不同的测试用例设计策略从系统模型生成可靠的测试用例。

  与传统测试相比,优点:

     (1)测试用例的维护更轻松:维护好模型,无需关注测试用例的细节

     (2)软件缺陷发现的更早:在构建被测系统模型的过程中,需要对被测系统有比较全面的理解,那么在早期建模过程中就可以发现被测系统中的一些问题,不需要等到执行大量用例时才发现;

     (3)测试自动化的水平更高:建模后,MBT可以自动生成测试用例,不需要人工编写测试文档;

     (4)测试覆盖率变得更高,使得彻底的测试(即:穷尽测试)成为可能:传统测试设计的过程中依赖人工,MBT生成测试路径时会避免人工设计测试用例时的思维局限性,生成更丰富的测试路径用例,但是是否需要执行“彻底”的测试由漏测对业务的影响决定。MBT只是从技术上提供了穷尽测试可能性。

     (5)基于模型间接维护测试用例的方式更高效:传统维护时需要依赖人工,需要耗费大量的人力和时间成本,重新测试设计。使用MBT只需要维护好测试模型即可,生成测试用例的工作可以由MBT工具自动完成;

   缺点,即未广泛推广的原因:

     (1)学习成本较高:要求开发人员、测试人员都精通建模,和工具的选型;

     (2)使用MBT的初期投资较大:已有的MBT工具不一定适合自己产品,定制的话需要考虑扩展性,和处理复杂逻辑,也就是要花费大量时间和精力;

     (3)用例*炸

  总结下,测试方法多种多样,MBT和传统测试相比,各有优劣。如果一个应用的任何组件都可以通过模型来模拟、通过驱动程序来驱动,并可以通过测试结果来比较的话,那么这个应用是MBT的佳候选者。

  2.1 通用流程

 2.2  Model design(模型设计)

 模型设计,目的是用来为构造测试用例而进行的被测系统描述

(1)模型关注点:

   (2) MBT模型分类:

2.3  Tests selection(测试需求选择)

       指导测试用例生成器( test generation)如何生成用例

2.4  Tests  paths generation(测试用例生成)

      按模型及测试需求选择来生成测试用例。GraphWalker就是完成这部分工作的一个开源的java工具。

2.5  Tests execution(执行测试)

      执行测试,并比较预期

2.6  FSM举例:海拍客mallpc登录相关功能建模,如下

一个箭头,代表一次测试动作;

一个节点,代表一次测试验证;

2.7常见工具:BPM-X、fMBT、GraphWalker

三、GraphWalker简介

 

 GraphWalker就是一个基于测试模型的用例生成工具,主要支持于FSM, EFSM模型。它以有向图的形式读取模型,生成测试路径,适合于多状态以及基于**驱动的状态转换的系统。

四、使用GraphWalker建模

有向图中,顶点(或节点)表示一些期望的状态,并且边(弧,箭头,过渡)表示为了实现期望的状态需要做的任何动作;

 4.1建模工具:yEd

4.2 建模规则1

    4.3建模规则2

   4.4建模keywords

4.5支持多模型:

   GraphWalker可以在一个会话中使用几个模型。这意味着在生成路径时,GraphWalker可以选择跳出一个模型到另一个模型。当将不同的功能分为多个模型时,这是非常方便的。

   

多模型offilne运行举例:

java-jar graphwalker-cli-4.0.0-SNAPSHOT.jar-d all offline-m Model_A.graphml random(edge_coverage(100))-m Model_B.graphml random(edge_coverage(100))-m Model_C.graphml random(edge_coverage(100)) -m Model_D.graphml random(edge_coverage(100))–o

当路径生成到达模型A中的顶点v_B时,它必须考虑关键字SHARED:B..这将告诉GraphWalker使用相同的名称搜索所有其他模型的同一个关键字:B.在我们的例子中,只有一个,它在模型B中。

现在GraphWalker决定是跳出模型A,进入模型B中的顶点v_B,还是留在模型A中。这个决定是基于随机的。

多模型特性:

五、路径生成器和结束条件

六、GraphWalker工作方式

以作为第三方库为例:使用GraphWalker第三方库实现模型自动化测试

七、GraphWalker命令行:此处省略

八、Restful或WebSocket服务的区别:此处省略

九、Web Socket API接口:此处省略

十、REST API接口:此处省略

十一、GraphWalker源码:

GraphWalker工具核心:graphwalker-core

参考资料:**

备注:

FSM:有限状态机 Finite State Machine

EFSM:扩展有限状态机

相关文章

创维电视86英寸144Hz质量怎么样

创维电视86英寸144Hz质量怎么样

很多小伙伴在关注创维电视86英寸144Hz怎么样?质量好不好?使用测评如何?本文综合已购用户的客观使用分享和相应的优惠信息,为大家推荐一款高性价比的产品,一起来看看吧。...

Vidda海信电视55英寸好不好

Vidda海信电视55英寸好不好

很多小伙伴在关注Vidda海信电视55英寸怎么样?质量好不好?使用测评如何?本文综合已购用户的客观使用分享和相应的优惠信息,为大家推荐一款高性价比的产品,一起来看看吧。...

先科(SAST)超薄超高清平板电视小尺寸高清智能液晶小电视机家用卧室迷你电视老人电视机使用心得反馈

先科(SAST)超薄超高清平板电视小尺寸高清智能液晶小电视机家用卧室迷你电视老人电视机使用心得反馈

很多小伙伴在关注先科(SAST)超薄超高清平板电视小尺寸高清智能液晶小电视机家用卧室迷你电视老人电视机怎么样?质量好不好?使用测评如何?本文综合已购用户的客观使用分享和相应...

海信电视65E5G65英寸4K超清图文测评

海信电视65E5G65英寸4K超清图文测评

很多小伙伴在关注海信电视65E5G65英寸4K超清怎么样?质量好不好?使用测评如何?本文综合已购用户的客观使用分享和相应的优惠信息,为大家推荐一款高性价比的产品,一起来看看...

创维(Skyworth)70A9价格是多少

创维(Skyworth)70A9价格是多少

很多小伙伴在关注创维(Skyworth)70A9怎么样?质量好不好?使用测评如何?本文综合已购用户的客观使用分享和相应的优惠信息,为大家推荐一款高性价比的产品,一起来看看吧...

Apple苹果耳机有线原装线控手机耳机13/14耳塞入耳式XR有线耳机耳麦iPhone12ProMax/11/SE/8p/earpods质量好吗

Apple苹果耳机有线原装线控手机耳机13/14耳塞入耳式XR有线耳机耳麦iPhone12ProMax/11/SE/8p/earpods质量好吗

很多小伙伴在关注Apple苹果耳机有线原装线控手机耳机13/14耳塞入耳式XR有线耳机耳麦iPhone12ProMax/11/SE/8p/earpods怎么样?质量好不好?...