当前位置:   article > 正文

学习笔记-->Jmeter性能测试&postman接口测试_postman在执行前有个前置脚本在执行接口,jmter可以用嘛

postman在执行前有个前置脚本在执行接口,jmter可以用嘛

说明:本人学习Jmeter性能测试相关内容,供秋招找工作使用。因为没有互联网实习经验,只能学习皮毛凑合使用,建议找测试、测开工作的同学去b站找相应课程学习,本文只是粗略记录并总结,供面试时背诵使用。
在这里插入图片描述
思维导图
在这里插入图片描述

总结(面试时简单使用)

了解jmeter性能测试,之前进行了一个发帖服务器的压力测试,首先要进行的是一个脚本录制,可以使用第三方badboy录制工具进行录制,但是只支持web不支持app;当然可以设置本地局域网,让发送的请求走的是jmeter代理,进行http代理服务器录制,但是这个过程中会会录入大量无关信息,比如js,css,png文件等,所以就用了正则表达式在HTTP代理服务器处滤除无用的信息。

接下来就是一个数据驱动的过程,可以使用csv data参数化的方式,将测试用例的数据存储到excel,或txt的文件中,并对取样器进行相关的参数设置,同时还使用函数助手方式进行随机参数化,模仿不同用户的输入情况。

用户数据设置好之后,就是对取样器进行管理,1设置线程组的数量,以及集合点,模仿高并发情况。2.对重要取样器进行断言操作看服务器响应与测试结果是否相匹配,通过响应断言,断言持续时间,大小断言,多方位进行检测。3可以将登录发帖的操作放到事物控制器下,来查看一系列操作完成的性能情况,4.就是生成测试报表,可以通过断言结果,查看哪些响应失败了,查看结果树,聚合报告,图形结果可以看服务器的1.response time 响应时间2. 事务响应时间(一系列操作的取样器)3.吞吐量 时间段内(5h内)字节数 105/分钟4.吞吐率5.Hits/Request 网页点击数 6.Hits Per Second 每秒种点击次数等等。

脚本录制

脚本录制前写好测试用例(写好测试点,登录,发帖子),直接一气呵成,不要返回这些操作,因为每一个步骤他都会录制下来,录制好了操作步骤后,后面进行操作时,都按照这个操作执行。

1.第三方BadBoy录制(只支持web不支持app)

特点:第三方BadBoy录制自动过滤无用的数据流,看起来清晰

  1. 使用用badboy进行脚本录制,然后传给jmeter,使用BadBoy录制并导出成.jmx,jmeter打开jmx文件
  2. 导入badbody录制的脚本后,step1的循环控制器和thread group中的循环次数是冲突的,将step->改变控制器->逻辑控制器->简单控制器-> 这样step中就没循环次数了,此时step控制器起到组织目录的作用。
  3. 任何一个脚本都要添加监听器->结果树(用来查看我们脚本是否能够正确运行的唯一检测)step1->添加监听器->结果树。

2.http代理服务器录制(手机测试,web测试)

特点:会录入大量无关信息,需要滤除,使用完,本地局域网设置成原样

  1. 对本地局域网进行设置,让浏览器发请求时,走的是jmeter代理
    chrome->高级->代理->连接->本地局域网设置(localhost 8888)
  2. 启动Jmeter后,右键点击测试计划(Test Plan)添加 - Threads-Threads Group(线程组)
  3. 右键点击测试计划-添加-非测试元件-HTTP代理服务器,并进行设置:
    服务名字, 端口,目标控制器(测试计划->线程组),分组,type(httpclient4),过滤模式
  4. 添加上cookie管理器。HTTP Cookie Manager可以自动储存服务器发送给客户端的所有Cookie。
  5. 开启录制后,浏览器正常访问页面,后台jmeter进行录制,但发现有好多无用的网站也被录入,只要是客户端有数据流动,都被录入了比如一些jpg,png,jif,css,js文件都是无用的,用正则表达式在HTTP代理服务器处滤除。
    .\ . 格式滤除包含空格理的所有东西
    ..jpg. ..js. ..css. ..png. 需要的就是php
    请添加图片描述

3.手动编写接口操作

  1. 在http信息头管理器中,编写请求头
    Content-Type text/xml;charset=utf-8
  2. 在取样器中编写
    请求行+请求体
  3. 添加断言,查看结果树
    在这里插入图片描述

参数化(数据驱动)

1.前置处理器参数化

特点:使用脚本中的前置处理器添加用户,但是需要打开jmeter才能设置,所以不提倡

  1. step1->前置处理器->用户参数,在脚本执行前对用户数据进行创建, 并设置
    a.每次迭代更新一次,保证每个用户数据都用上。
    b.添加变量(usename,passward),添加用户数据
  2. 在录制的登录的html中的参数体中,进行参数配置保证可以正确读取用户参数${username}
  3. 后置处理器,对数据的响应进行提取,断言。
    在这里插入图片描述
    在这里插入图片描述

2.CSV Data Set Config 参数化(常用)

特点:通过CSV data set config 参数化,将用户数据写到text,excel中.

  1. step1->配置原件->文件编码格式(utf-)->变量名称(username,password)->文件分割符(,)
  2. 在录制的登录的html中进行参数配置,保证可以正确读取用户参数 ${username}
    在这里插入图片描述

3.函数助手方式采用随机参数化(冒烟测试)

特点:应用冒烟测试的随机数生成,无法预测客户的输入是什么

  1. 工具->函数助手->将生成的函数${__RandomString(4,123456879,)}
  2. 在录制的登录的html中进行参数配置,保证可以正确读取用户参数${__RandomString(4,123456879,)}
    在这里插入图片描述

小知识点

1. 事务&元件&结果树

  1. 事务:一个业务包含多个请求,比如登录发帖一整套流程。
    step1添加-逻辑控制器-事务控制器->右边设置generate parent sample将多个事务汇总->将具体的登录的案例拖进去就行,再加上聚合报告查看
  2. 所有的元件,可以放到单个取样器,事务,线程组,放的位置不一样,效果不一样,很灵活。
  3. 查看结果树进行测试用例的执行以及查看请求状态和响应状态
  4. 集合点(多少用于实现秒杀操作),和thread group(一共多少个用户)配合适用

2.集合点完成秒杀任务(考验系统高并发)

线程数和集合通常搭配适用,算的时候是整除,但是有时候可能关门刹那间有人窜过去,导致数据不能整除,所以要集合点要设置超时时间)
Thread Group->定时器->synchronize->将同步定时器拖到登录下面,起到并行作用。
前面线程数的设置就是并发,设置成35。现在的同步定时器就是并行,设置成10,就是集合10个人,同一时刻点进行并行发帖状态,但是35/10不能整除,jmeter基本需要10个人才能执行,所以进入等待的死循环,设置超时等待时间放弃一些集合点。

3.检查点

通过检查点才能判断你的响应是否正确执行。
响应断言,断言结果,断言持续时间,断言大小(开发人员计算出来服务器出来的页面大小是200字节,等到client解压后也应该是200字节,通过断言防止丢失数据,或被黑客攻击添加信息)
1.在一个采样器下sampler下,右键添加相应断言,
2.设置测试字段,响应文本之类,相应代码等
3.测试模式,就是测试与相应是否相关,然后在查看结果树中进行查看,但是一片红,可能是多个断言都出现错误,查起来比较麻烦,so通常在采样器下sampler下,右键添加监听器->断言结果,每个断言出现一个断言测试报告。

4.响应时间

影响因素(2s-5s页面浏览最佳)
1.网络带宽:在本地局域网测试,屏蔽掉带宽带来的影响,因为我们做性能测试,测的是服务器的性能。
2.程序处理逻辑–不同浏览器对页面解析的快慢:使用同一款浏览器
3.请求数据包的大小:第一次用200k文件,性能调优后还用200k

5.其他

  1. 线程组1:购物–可以使用模块控制器进行购物,线程组2:付款
  2. 取样器:驱动测试执行,http请求,jdbc request ,tcp
  3. 配置原件:做参数化,驱动测试,从外部读入数据,可以对cookie管理,下次脚本回访自动带上cookie
  4. 测试片段:需要被重复调用的脚本,比如付款,购物都要先进行登录操作,所以要先加登录片段
  5. 固定请求器:每个测试要停个2秒

postman接口测试

这是另外一篇博文,见 链接
请添加图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小蓝xlanll/article/detail/631876
推荐阅读
相关标签
  

闽ICP备14008679号