7、脚本生成的方式有哪些?具体录制的过程说一下?
脚本生成的方式有两种:一种是录制、一种是通过jmeter定义的规则手写代码首先录制脚本的话有多种方式:第一种是jmeter的本身的代理设置录制
第二种是录制辅助工具badboy
第三种是fiddler的抓包并生成jmeter可识别的脚本格式
jemter代理录制话,抓到的内容比较杂乱,所以不建议使用
fiddler的抓包生成jmeter可识别的格式的这种需要下载插件到fiddler中
badboy的录制来说相对简单一些,着重说一下录制过程:
首先下载badboy,然后打开badboy,将要测试的对象url添加到badboy的地址栏中,然后badboy会打开被测对象的页面,在被测对象页面中进行业务操作,操作完毕之后,停止录制,导出jmeter可识别的格式到指定位置,jmeter在调用脚本时,只需要到指定位置打开即可,此jmeter就可以展示出默认生成的脚本内容了。
8、jmeter怎样进行性能测试的操作?
jemter进行性能测试的操作:首先将录制好的脚本,导入到jemter,然后调试脚本,设置线程数、运行时间、同步定时器、逻辑控制器、插入察看结果树、聚合报告等元件。具体设置的值要依据于你的性能测试场景用例进行编辑,之后就是运行已经调试好的脚本,查看聚合报告内容输出的值和在服务器中监控的各种资源的占用情况,最后分析所有结果内容,编辑测试报告提交。
jmeter针对接口性能测试时候不需要录制脚本,而是参照开发人员给的接口文档以及设计的性能测试用例,添加具体的请求内容,再往下的操作过程与上面一致,不再赘述了。
9、性能测试流程是什么样的?
性能测试流程是这样的:首先性能测试指标文档由项目经理或者产品经理给出,然后结合性能测试指标文档中定义的测试背景、测试功能、测试业务、测试环境(包括软件、硬件、网络等)、测试具体指标值,这些内容进行详细分析,从而得出适用于哪些性能测试的方法,采用什么工具,然后设计具体的性能测试场景和业务用例,设计完用例之后,整个性能测试的所有参与人员需要对性能测试用例进行评审,评审的内容主要会分析用例的不足,比如说用例的各种值和场景是否符合性能测试的要求等等,评审完了之后,利用具体测试工具进行执行,比如说jmeter和loadrunner这两个性能测试工具,我通常使用的是xxxx,然后将具体用例的场景在工具中实现,之后执行性能测试,测试完毕之后,对性能测试结果进行分析并编辑出性能测试报告,用邮件的方式发给直接领导,并附件抄送所有参与人员,然后相关人员会根据性能测试报告,进行具体分析,针对基于项目的性能问题进行调优。
少量参数化:在测试计划下面添加线程组和http请求,在当前http请求里面输入协议、路径、地址、参数和值,再添加前置处理器里面的用户参数,在用户参数里面添加变量和添加用户,再添加察看结果树就可以了。
大量参数化(自动化测试):在测试计划下面添加线程组和http请求,在当前http请求里面输入协议、路径、地址、参数和值,添加配置元件里面的csv数据文件设置,在文件名里面导入已经创建好的csv文件,选择文件编码utf-8或者GB2312,输入变量名称,再添加察看结果树就可以了。
同步定时器:( Synchronizing Timer)在测试计划下面添加线程组,在线程组里输入线程数、线程数启动时间、运行时间、循环次数,在线程组下面添加http请求,在http请求里面输入协议、路径、地址、参数和值,在当前http请求下面添加定时器里面的同步定时器(相当于loadrunner里的集合点),在同步定时器里输入并发用户数和等待时间,最后添加聚合报告和察看结果树就可以了。
正则表达式提取器(关联):在线程组里添加第一个http请求(输入协议、路径、地址、参数和值),在当前http请求里添加后置处理器里面的正则表达式提取器,输入引用名称、正则表达式、模版、匹配数字,然后在线程组里再添加第二个http请求(只输地址、参数和值),在线程组下面添加取样器里面的Debug smpler ,最后再添加察看结果树 ,查看取样结果。
聚合报告包含内容:
http请求名字、Samples:请求数量、响应时间(Average:平均响应时间、90% Line:90%响应时间、Min:最小响应时间、Max:最大响应时间)、Error(本次测试中出现错误的请求的数量)、Throughput:吞吐量、KB/sec:每秒从服务器端接收的数据量和发送的数据量
Jmeter做并发的方式:①线程组里输入线程数
②用同步定时器,输入并发用户数和等待时间
性能测试场景:
被测指标、被测业务、被测环境、被测功能、被测方法
组件:
取样器——http请求(做接口)
后置处理器——正则表达式提取器(关联)
前置处理器——用户参数(少量参数化)
断言——响应断言(做预期)
定时器——固定定时器(时间间隔)、同步定时器(同时并发)
配置元件——csv数据文件设置(大量参数化)
监听器——查看结果树、聚合报告、断言结果
关联
什么情况下用到关联:(登陆举例)
客户端向服务器发送一个登登录请求,服务器收到请求后发给客户端一个唯一的session id。当用户输入用户密码请求登录时,该session id同时被发送到服务器端,但是这个ID只有在当前会话中有效当我刷新界面或者是换个账号登录,这个ID就失效了,服务器会给我发送一个新的session ID。但录制脚本的时候用的是一个session id,那么回放脚本的时候录制时的session id就不能用了,就会登陆失败,这个时候就要用到关联。
关联:提取服务器返回的数据给下次请求用,这个过程就叫关联。
关联的特点:
涉及两个具体的请求
从响应中获取数据
关联的数据每次都是变化的
提取的数据存储在变量中
后续请求申请引用(即使用)变量
哪些业务场景会用到关联:(商品订购系统举例)
[if !supportLists]1、[endif]用户选择商品后,提交商品信息,会生成一个订单号(大概提取10几个值),
2、用户选择支付方式,将支付相关的信息和订单号,提交到服务器,付款成功
前端性能
前端用户遵守1-3-5原则
测试对象:服务端数据返回、网络传输、数据渲染等
目的:提升用户体验
前端优化:
[if !supportLists]1、[endif]减少http请求数 2、减少请求元素大小
①合并图片、减少图片数量 ①压缩脚本、zip压缩
②捆绑文件、多个CSS、JS脚本文件 ②压缩图片、改变图片格式.png切图
变成一个文件,减少文件下载数③精简脚本、祛除重复脚本
③避免404、以及301、302重定向 ④控制cookie大小,合理设置过期时间