软件测试,就是一个过程或一系列过程,用来确定计算机代码完成了其应该完成的功能不执行其不该有的操作。

简单说就是找bug的过程。

测试分类

(1)按测试方式分类:静态测试、动态测试

(2) 按测试方法分类:白盒测试、黑盒测试

(3) 按测试自动化程度分类:人工测试、自动化测试

(4) 按测试阶段分类:单元测试、集成测试、确认测试、系统测试、验收测试

(5) 按测试类型分类:功能测试界面测试性能测试(负载测试、强度测试)、容量测试、压力测试、安全测试、兼容性测试、安装测试、文档测试、易用性测试、边界测试、健壮性测试、本地化测试、无障碍测试、回归测试、冒烟测试、Monkey测试、A/B测试

(6) 按测试模式分类:瀑布模型、敏捷测试、基于脚本的测试、基于风险的测试、探索式测试

(7) 按测试的对象分:web测试、移动测试。。。

。。。

功能测试(黑盒测试),功能测试就是对产品的各功能进行验证,根据功能测试用例,逐项测试,检查产品是否达到用户要求的功能

自动化测试,一般是指软件测试的自动化,软件测试就是在预设条件下运行系统或应用程序,评估运行结果,预先条件应包括正常条件和异常条件。

web界面测试、性能测试、接口测试 框架简单介绍

web界面测试:

IDE是:selenium-server、selenium-java包(Java版本)

简单来说就是做web自动化测试框架,可测试不同的浏览器.

新兴起的自动化测试软件,更易使用,IDE是katalon studio。

  • 两者的区别
  1. Katalon的用户群体范围更广,用户甚至不需要任何编程基础,只需要知道自己想做什么即可,而Selemium的用户群体是开发或者测试人员
  2. Katalon安装和使用都更简单,只要下载软件,然后点击exe,登录即可。Selenium需要先安装jRE,selenium-server、selenium-java包,如果是在谷歌浏览器使用还要下载Chromedriver包,而且界面没有katalon更易操作和美观,主要是通过命令行和代码实现录制和测试。另外是Katalon recode(脚本录制)比Selenium IDE(脚本录制)更简单,识别准确度也更加高

(Katalon Recorder(katalon录制脚本的一个工具,直接在google的应用商城搜索安装插件即可)。它可以录制自己在浏览器的记录,然后可以回放操作、控制速度和导出java等代码的执行脚本,对于界面测试很有帮助)(演示)

接口测试:

Jmeter,loadrunner,Postman,restclient,

Jmeter和loadRunner在这里的接口测试,是指其能录制脚本,并记录下所有的请求,并且能通过正则匹配等方式来验证返回的结果是否正确,对于批量测试接口和已经现成的网站来获取接口来测试很方便。

Postman和Restclient则是专门的接口测试工具了,对于构造请求参数和发送请求都很方便,对于开发阶段测试较方便。

Jmeter的脚本录制需要注意的点的,对于https协议的话,你需要将其bin目录下生成证书放到其根目录下才能进行访问网站,否则可能访问不了

性能测试

Postman, Jmeter, ab

Postman自带的测试(Runner测试,不能并发测试):

在Runner界面下,可以设置之前自己构造的请求发送多少次请求, 但是发送的请求是串行的,即等上一个请求发完才能继续发送。这个功能适合简单测试,因为平时测试一般都是使用postman来构造请求测试,所以这种性能测试几乎是不用额外的工作量,就可以测试出程序在多个请求发生时的情况(程序内存,cpu使用率等),从而针对程序进行优化。缺点是:不能模拟并发场景,适用于没有较少并发场景的接口,例如一些比较少用的保存,接口,可以利用该功能模拟程序运行久之后,运行情况。(演示)

Jmeter测试

Jmeter是一个专业开源的性能测试软件,纯Java开发,可以用于对静态的和动态的资源(文件,Servlet,Perl脚本,Java对象,数据库查询,FTP服务器或是其他资源)的性能进行测试。

它提供了图形化界面来供用户适用,也可以通过引入插件方式来给测试的指标更丰富的可试化功能。

它提供的功能包含脚本录制,参数化,集合点,检查点,关联,多协议,多线程,报告生成与导出等,几乎能满足一切的性能测试的要求,所有目前这个性能测试框架是比较多公司在使用的,像阿里的产品 性能测试 PTS(Performance Testing Service)中就支持Jmeter导入测试。https://help.aliyun.com/document_detail/29262.html

这个在后面在具体讲解专门使用

ab(apachebench)

ab是一种用于测试Apache超文本传输协议(HTTP)服务器的工具。(演示)

ab的原理:ab命令会创建多个并发访问线程,模拟多个访问者同时对某一URL地址进行访问。它的测试目标是基于URL的,因此,它既可以用来测试apache的负载压力,也可以测试nginx、lighthttp、tomcat、IIS等其它Web服务器的压力。

优点对发出负载的计算机要求很低,它既不会占用很高CPU,也不会占用很多内存,使用简单。适合测试简单接口的性能。缺点:对于一些接口要请求头会经常变或者要测试多个接口的时候就很不方便。

命令示例:ab -c 10 -n 100 http://www.myvick.cn/index.php :同时处理100个请求并运行10次index.php(演示)

其他

LoadRunner太重量级且收费,Gatling(Scala语言)需要写代码非界面操作,都不太适用

Jmeter测试框架具体介绍和简单展示(主要是后端部分)

Jmeter相关概念:

  1. 执行计划:与本次性能测试相关的所有的内容。

  2. Treads(Users)线程 用户 ,分为setup thread group (预测试操作), teardown thread group (测试后的动作),thread group (线程组)核心,可以看成一个虚拟用户组。

  3. 定时器 (Timer) 用来控制等待时间,控制QPS,或者发送的Constant Throughput Timer(吞吐量)

  4. 配置元件(Config Element),提供动态请求数据的配置或者是请求头等的配置

  5. 断言(Assertions),一般用来测试得到的结果是否正确,判断结果状态。

  6. 监听器(Listener),用户对测试结果数据的的处理和可视化展示的一系列元件。包含结果汇总,查看结果树,聚合报告等。

  7. 取样器(sample),是性能测试中向服务器发送请求,记录响应的信息,记录响应时间的最少单元,可以认为它是主要去执行任务,发送请求的。

  8. 逻辑控制器。控制发送请求的逻辑顺序,如只执行一次,执行多少次,在什么条件(if)下才执行。

  9. 测试片段、前置处理器、后置处理器、逻辑控制器(这些用的比较少,具体介绍可以查看官方文档https://jmeter.apache.org/usermanual/get-started.html)

如何创建一个http请求测试

安装Java后,下载Jmeter,解压,然后运行bin/jmeter.bat文件。可以看到:

具体过程:

总结,如何简单使用测试

  1. katalon recoder(界面录制和测试)

  2. jmeter(接口性能测试)

  3. postman (接口简单测试和连续请求测试,较为简单,本地使用接口调试和顺便测试)

  自动化测试还有很多东西,这些内容只是冰山一角,之前想着把自动化测试的总体流程都说一下,然后学习之后发现涉及的东西太多,例如:完整的测试用例设计,浏览器驱动webdriver,持续集成等等。

短时间内容几乎不可能学完,所以就以这些目前自己工作中能方便使用到测试工具进行了一下简单讲解。如果有说明得不对的地方,望体谅。

最后,测试用得好,代码bug少。

参考及资源

  1. 测试社区: https://testerhome.com/

  2. https://blog.csdn.net/xuecancan/article/details/79529155

  3. 软件测试的艺术,Glenford J Myers [book]

  4. linux下ab压力测试

  5. 压测相关参数

    https://www.cnblogs.com/a00ium/p/10462892.html

    https://www.yuque.com/darry/skills/ef9kmx

软件测试漫谈(web测试,自动化测试,Jmeter)的更多相关文章

  1. 《高级软件测试》web测试实践--12月30日记录

    考完数学,我们正式开始web测试实践的作业,今天,我们主要进行了方案的选择和人员的分工.任务计划和安排如上图所示. 任务进展:完成题目选择和人员分工: 遇到问题:暂无: 下一步任务:完成软件评测.用户 ...

  2. 《高级软件测试》web测试实践--12月31日记录

    今日的任务进度如上图所示.我们对华科软件学院和计算机学院的网站进行了对比分析,分析的角度包括基本功能分析.前端性能分析.用户调研等.在这里我们简单总结下我们得到的评测结果. 基本功能分析:计算机学院和 ...

  3. Web测试相关内容

    Q-1. Web测试的范围是什么? 答. Web测试是软件测试的名称,专注于测试基于Web的应用程序. 在进入生产环境之前,测试团队会对Web应用程序进行详尽的测试. 这有助于发现应用程序中的不同问题 ...

  4. jmeter的使用---web测试

    jmeter的使用---web测试 url:http://127.0.0.1:1080/WebTours/ 1.通过badboy录制脚本 1.1输入url点击右侧的跳转按钮,随后右侧显示url界面 1 ...

  5. 【jmeter】jMeter使用Badboy录制Web测试脚本

    JMeter 是纯Java编写的软件功能和性.能测试工具,其录制脚本过于笨拙和复杂.而Badboy是用C++开发的动态应用测试工具,其拥有强大的屏幕录制和回放 功能,同时提供图形结果分析功能,刚好弥补 ...

  6. JMeter Web测试快速入门教程

    学习前的准备 学习本教程前,你的电脑上至少应该有Apache JMeter这款软件.如果你没有,点击此处下载. 当你点进去后,你会发现它是一个依赖Java的软件 因此如果你电脑上没有Java环境,你应 ...

  7. BadBoy+JMeter来录制和运行Web测试脚本

    参考: http://jingyan.baidu.com/article/5d368d1ef548d43f61c05761.html http://www.51testing.com/html/00/ ...

  8. web测试工具总结

     纯粹的手工测试早已不满足如今的项目需求,各种测试工具的应用早已成为普遍趋势.如何选取合适的工具来完成对应的测试工作?本文将针对Web测试,列举 一些推荐的测试工具,并加以简单介绍. (每个工具的实际 ...

  9. Web测试的常用测试用例与知识

    1. Web测试中关于登录的测试 2. 搜索功能测试用例设计 3. 翻页功能测试用例 4. 输入框的测试 5. Web测试的常用的检查点 6. 用户及权限管理功能常规测试方法 7. Web测试之兼容性 ...

随机推荐

  1. 风炫安全WEB安全学习第二十二节课 DOM型XSS讲解

    风炫安全WEB安全学习第二十二节课 DOM型XSS讲解 Dom型XSS演示 通过Javascript,可以重构整个HTML文档,你可以添加.移除.改变或重排页面上的项目 要改变页面的某个东西,Java ...

  2. Harbor镜像删除回收?只看这篇

    最近,公司的技术平台,运维的破事儿颇多.Jira无法访问,ES堆内存不足,Jenkins频繁不工作..等等等,让我这个刚入门的小兵抓心脑肝,夜不能寐,关键时刻方恨经验薄弱呀!!一波未平,一波又起,这不 ...

  3. python作业完成简单的文件操作

    题目 请创建以学号命名的目录,在该目录中创建名称为file1.txt的文件,并将自己的个人信息(序号.姓名以及班级)等写入该文件:然后并读取文件中的内容到屏幕上:接着重新命名该文件为file2.txt ...

  4. SpringBoot嵌入式Servlet容器

    SpringBoot默认是将Tomcat作为嵌入式的servlet容器. 问题: 如何修改嵌入式的servlet容器? 1)在配置文件中设置对应的属性值 server.port=8081 # Tomc ...

  5. Azure Table Storage(一) : 简单介绍

    Azure Table Storage是什么: Azure Table Storage是隶属于微软Azure Storage这个大服务下的一个子服务, 这个服务在Azure上算是老字号了, 个人大概在 ...

  6. 24V降压3.3V芯片,低压降线性稳压器

    PW6206系列是一款高精度,高输入电压,低静态电流,高速,低压降线性稳压器具有高纹波抑制.在VOUT=5V&VIN=7V时,输入电压高达40V,负载电流高达300mA,采用BCD工艺制造.P ...

  7. 将汉字取模软件中的汉字放到keil5中显示

    最近因为要使用STM32做毕业设计,需要用LCD显示中文,STM32开发板用的是原子的战舰STM32开发板,给的LCD显示例程里貌似没有中文显示,那么需要自己去编写中文显示程序. 软件编写对我来说并不 ...

  8. FastAPI实践项目:SayHello(FastAPI + vue.js + axios + element ui)

    目录 简介 翻版 VS 本尊 后端服务 源码 接下来 简介 这次带来的是FastAPI + vue.js + axios + element ui (一个html文件里使用的) 实现的<Flas ...

  9. Connections could not be acquired from the underlying database!

    Connections could not be acquired from the underlying database! 报错截图: 报错内容: Exception in thread &quo ...

  10. 初始TypeScript

    什么是TypeScript? TypeScript是拥有类型系统的JavaScript的超集,可以编译成纯JavaScript: 1.类型检查:TS会在编译代码时进行严格的静态类型检查,这意味着可以在 ...