Jmeter

Http request请求讲解

      一个http请求指从客户端到服务端的请求信息,可通过浏览器f12,查看一下信息:请求地址,请求方法,http协议/版本,请求头,请求参数。

http response详解

     一个http response(http响应)指的是从服务端到客户端的响应消息,它包含一下信息:响应状态码:标记响应状态的一个标识;响应头:告诉客户端关于服务器,响应报文的一种信息;响应报文,针对请求从服务响应回来的数据,比如html,xml,json等。

http请求常见状态码

     200--(成功)服务器已成功处理了请求;3开头(请求被重新定位)表示要完成请求,302--(临时移动),304--(未修改);4开头(请求错误),400(请求语法错误),401(禁止访问),403(请求被拒绝),404(资源不存在);5开头(服务器错误),500--(服务器内部错误),502--(网关错误),505--(http版本不受支持)。

请求默认值

    作用:http请求默认值会在发送请求的时候会自带参数;

    什么时候添加?大部分信息一致的时候加;

    如果加了http请求默认值之后,在单个http请求中还填写了同样的数据,以哪个请求为准?以http请求中添加的为准。

察看结果树之CSSJQuery-Tester使用

    作用:CSS/Jquery测试程序只适用于文本响应,可以根据jsoup对响应数据进行过滤和查看,selector属性-精准定位。

察看结果树之html的使用

   html模式一共有3种选项

   1、html视图以HTML方式呈现;

   2、会下载HTML代码引用的图像,样式等;

   3、如果选择了HTML sourse格式化视图选项,则呈现有jsoup格式化和清理的html源代码。

察看结果树之JSon使用

   json模式一共有2中选项

   1、json视图将显示树形风格的响应;

   2、json path tester:json路径测试视图将允许您测试json-path表达式,并从特定响应中查看所提取的数据

       》Json Path Expression表达式:$表示根节点,一级一级往下走,如老黄历:$.result["yangli"]  or $.result.yangli

察看结果树之Document使用

   作用:视图将显示从各个类型的文档中提取文本。

      》使用Document需要下载apache tika binary package (tika-app-X.X.jar)并将它放在jmeter_home/lib目录。

察看结果树之Regexp tester使用

   regexp仅适用于文本响应,点击“test”按钮,系统将应用regexp对面板中的文本进行查询,将结果显示在面板中

    》正则包大师引擎与正则表达式提取器中使用的正则表达式引擎相同。

察看结果树之XPath tester使用

   Xpath仅适用于文本响应

   使用方法:打开浏览器f12,定位后复制xpath,粘贴在xpath expression

Jmeter配置元件之http信息头管理器使用

     什么是信息头?请求头

     什么时候用?cookie,token或其他

    场景设计?反爬虫添加信息头--模拟浏览器发送请求---user-agrent

    分全局和局部吗?分的

Jmeter断言之响应断言

    作用:用于检查测试中得到的响应数据等是否符合预期,用以保证性能测试过程中的数据交互与预期一致

    目的:在request的返回层面增加一层判断机制,因为request成功了并不代表结果一定正确。

    使用:给某个请求添加好断言 ,添加对应的断言结果监听器

Jmeter断言之xpath assertion

    定义:xpath 即为xml路径语言,它是一种用来确定xml(标准通用标记语言的子集)文档中某部分位置的语言,xpath基于xml的树状结构,提供在数据结构树中找寻节点的能力

    作用对象:针对返回信息为xpath的数据类型进行断言

    使用方法:浏览器中f12,定位后,复制xpath到xpath assertion中,添加对应的断言结果监听器

Jmeter结合fiddler查看相应结果

    使用方法:在http请求中配置Proxy server [fiddler的信息]

    作用:更方便查看响应结果

Jmeter请求元件之用户自定义变量

     意义:提高脚本复用性

     使用方法:${变量名}   

Jmeter请求元件之参数化txt

    如登录接口:发送登录请求,针对登录接口设计5条测试用例,针对5条用例,首先想到的是添加5个http请求,使用优解法--参数化

    txt参数化数据管理(CSV DATA SET CONFIG 【从本地读取文件】),一个http请求就搞定

    使用:1、在本地创建文本txt,编写用例(用逗号隔开);

     2、填写参数名(用逗号隔开)

     3、请求中引用变量(引用方式:${变量名})

Jmeter请求元件之参数化CSV

     以注册接口为例,需要不同的手机号完成注册,如果继续用txt不容易管理,换成excel类型的数据CSV,会便携很多,其它用法和txt一样,只是创建数据会更加便利

Jmeter之参数化函数助手_CSVRead

     步骤:1、准备好CSV格式的数据

     2、准备好接口(注册为例) 参数:mobliephone 以及pwd

     3、调用_CSVRead函数,传入对应的值[列号从0开始]

     4、请求中将生成的函数引用到值中

     5、设置线程循环次数,查看结果

Jmeter之参数化函数助手_randonmstring

     有时有些参数是不断变化的,如果用CSV去做,需要准备很多不同的数据,利用_randomstring就方便很多

      步骤:1、准备好CSV格式的数据

      2、准备好接口(注册为例)mobliephone 以及pwd,regname

      3、调用_CSVRead函数,传入对应的值

      4、调用randonmstring来设置不同的regname

      5、请求中将生成的函数引用到值中

      6、设置线程组循环次数,查看结果$(函数)

    》缺点:数据存在重复

Jmeter之必备正则表达式

元字符 意义 限定符 意义
. 任意单个字符 + 匹配至少大于1次
\d 任意单个字符 ? 匹配0次或1次
[0-9] 等价0-9 * 匹配0次或多次 贪婪匹配
a-zA-Z 等价所有的大小写字母 {n}、{n,m}、{n} 匹配限定次数

              举例练习:元字符限定符

             》匹配数字123456        可.*    、     \d*     、  \d{6}    、 {0-9}{6}

        如何使用正则表达提取器?

    如果你想要在某个请求的相应结果里面拿到某个值

    1、确定想取值的左右边界

    2、写正则表达式(用括号)

    3、确定边界是唯一的,可以帮我们确定到值的

     如何查看正则表达提取器使用结果的正确性

    1、线程组下添加Debug Sample

     2、运行后台查看响应数据

       》模板:提取第一个圆括号中匹配的内容,【分组作用】多组时$1$ $2$

       》匹配数据(0代表随机),-1代表所有值(使用foreach 控制器拿到每一个值)

Jsonpath提取器的使用

          场景:json格式的数据,字典格式的{“name”:"lemon","teacher":"huahua","QQ":"12345678"}   key:value

Cookie处理

    如登录------》充值

       1、添加http cookie管理器

        2、登录产生的cookie使用正则表达式提取器获取cookie

Token处理

      如登录------》投资(结合fiddler抓包完成接口请求)

   如何确定这个问题?

      1、参数确定是否有问题

      2、是否有别的参数是自动输入的,非手动输入的,包含了数字字符大小写字母,是不断变化的,一般在该请求之前的某个请求的响应结果值

         》其它问题也可以参照这个解决方案,最后找到token这个值,才去的解决方法是:正则表达式提取+变量应用

Jmeter存储测试结果

   发送请求后,我们可通过察看结果树看到结果,如果想把结果保存起来,可利用监听器------保存响应到文件,对结果进行存储

Jmeter写入结果到EXCEL之环境准备

     步骤:1、下载jxl.jar包

         2、下载完成后,放到Jmeter的安装目录lib下

         3、jxl.jar的作用:完成对Excel的读写以及操作

   利用Jmeter操作Excel的思路分析

         》Excel中一般有三个要素:werkbook、sheet、cell

         想要把结果存储到指定的单元格中,必须要确定好这是哪个元素,依次定位

             1、先获取excel的文件名

             2、获取表单名

             3、获取单元格的坐标

                 》获取结果写入到对应的单元格中

                》需要利用beanshell写java代码,获取对应的数据写入到excel中

Jmeter测试数据结构准备

  准备代码后,我们需要准备对应的测试数据,共2份数据

             1、测试用例设计----表格:CSV格式【用例编号、标题、预期结果】

             2、参数化数据设计(测试数据)---【编号、标题、测试数据、预期结果、实际结果、执行结果】

Jmeter写入结果到excel之代码准备

        1、 阅读java代码,明白代码的作用

         2、编写代码完成后,导出(Export) jar包:CWResultFile.jar

         3、导出的jar包放在Jmeter的安装目录lib-->ext下

Jmeter写入结果到Excel

        1、新建线程组,创建一个登录请求的http,并传入相关参数

         2、新建一个正则表达式提取器,获取http请求返回的结果

         3、创建一个beanshell调用代码,创建一个excel。需要用仅一次控制器

               代码......

         4、创建一个beanshell调用代码,写入数据到excel中

               代码.....

Jmeter Json Extractor获取数组类型的数据

     jsonpath方式获取的值

          》单个值获取?data.files[索引从0开始,取头不取尾].fileId

          》多个值获取?data.files

          》0与-1的设置:0,只取一个,-1取所有值,需用逻辑控制器foreach,遍历没一个数组的数据

 

posted @ 2020-02-27 16:13  Zzcyfy  阅读(162)  评论(0)    收藏  举报