JMeter学习笔记——Web接口测试(HTTP请求)

转自:http://www.cnblogs.com/imyalost/p/5916625.html

一、添加HTTP接口测试

1、打开jmeter,默认有一个测试计划。右键点击“测试计划”-->“添加”-->Threads(Users)-->“线程组”。

        如上图,设置线程组,线程组主要包含三个参数:线程数、准备时长(Ramp-Up Period(in seconds))、循环次数。

  线程数:虚拟用户数。一个虚拟用户占用一个进程或线程。设置多少虚拟用户数在这里也就是设置多少个线程数。

  准备时长 设置的虚拟用户数全部启动的时长。如果线程数为20 ,准备时长为10(秒) ,那么需要10秒钟启动20个线程。也就是平均每秒启动2个线程。

  循环次数:每个线程发送请求的数。如果线程数为20 ,循环次数为100 ,那么每个线程发送100次请求。总请求数为20*100=2000 。如果勾选了永远,那么所有线程会一直发送请求,手动点击工具栏上的停止按钮,或者设置的线程时间结束。

  因为这里要做接口测试,所以各个参数为均1

2、邮件点击“线程组”-->“添加”-->“配置元件”-->“HTTP信息头管理器”

这里解释一下为什么要添加http信息头管理器: 

JMeter不是浏览器,因此其行为并不和浏览器完全一致。这些JMeter提供的配置元件中的HTTP属性管理器用于尽可能模拟浏览器行为,在HTTP协议层上发送给被测应用的http请求

扫描二维码关注公众号,回复: 1492639 查看本文章

(1)HTTP Request Defaults(请求默认值)

    用于设置其作用范围内的所有HTTP的默认值,可被设置的内容包括HTTP请求的host、端口、协议等

(2)HTTP Authorization Manager(授权管理器)

    用于设置自动对一些需要NTLM验证的页面进行认证和登录

(3)HTTP Cache Manager

    用于模拟浏览器的Cache行为。为Test Plan增加该属性管理器后,Test Plan运行过程中会使用Last-Modified、ETag和Expired等决定是否从Cache中获取相应的元素

(4)HTTP Cookie Manager(cookie管理器)

    用于管理Test Plan运行时的所有Cookie。HTTP Cookie Manager可以自动储存服务器发送给客户端的所有Cookie,并在发送请求时附加上合适的Cookie

    同时,用户也可以在HTTP Cookie Manager中手工添加一些Cookie,这些被手工添加的Cookie会在发送请求时被自动附加到请求

(5)HTTP Header Manager(信息头管理器)

    用于定制Sampler发出的HTTP请求的请求头的内容。不同的浏览器发出的HTTP请求具有不同的Agent

    访问某些有防盗链的页面时需要正确的Refer...这些情况下都需要通过HTTP Header Manager来保证发送的HTTP请求是正确的

http信息头管理器添加好之后,需要填入信息头的名称以及对应的值,如下


Content-Type意思可以理解为参数名称、类型,值下面输入对应的参数类型就行了,这里我测试时候需要传输json类型,因此就填入了application/json

3、右键点击“线程组”-->“添加”-->Sampler-->HTTP请求”。


  1)名称:本属性用于标识一个取样器,建议使用一个有意义的名称。

  2)注释:对于测试没有任何作用,仅用户记录用户可读的注释信息。

  3)服务器名称或IP HTTP请求发送的目标服务器名称或IP地址。

  4)端口号:目标服务器的端口号,默认值为80 

  5)协议:向目标服务器发送HTTP请求时的协议,可以是HTTP或者是HTTPS ,默认值为http 

  6)方法:发送HTTP请求的方法,可用方法包括GETPOSTHEADPUTOPTIONSTRACEDELETE等。

  7)Content encoding :内容的编码方式,默认值为iso8859

  8)路径:目标URL路径(不包括服务器地址和端口)

  9)自动重定向:如果选中该选项,当发送HTTP请求后得到的响应是302/301时,JMeter 自动重定向到新的页面。

  10)Use keep Alive  当该选项被选中时,jmeter 和目标服务器之间使用 Keep-Alive方式进行HTTP通信,默认选中。

  11)Use multipart/from-data for HTTP POST:当发送HTTP POST 请求时,使用Use multipart/from-data方法发送,默认不选中。

  12)Parameters、Body Data以及Files Upload的区别:

       1. parameter是指函数定义中参数,而argument指的是函数调用时的实际参数

       2. 简略描述为:parameter=形参(formal parameter), argument=实参(actual parameter)

        3.在不很严格的情况下,现在二者可以混用,一般用argument,而parameter则比较少用

       While defining method, variables passed in the method are called parameters.

       当定义方法时,传递到方法中的变量称为参数.

       While using those methods, values passed to those variables are called arguments.

       当调用方法时,传给变量的值称为引数.(有时argument被翻译为“引数“)

       4、Body Data指的是实体数据,就是请求报文里面主体实体的内容,一般我们向服务器发送请求,携带的实体主体参数,可以写入这里

       5、Files Upload指的是:从HTML文件获取所有有内含的资源:被选中时,发出HTTP请求并获得响应的HTML文件内容后还对该HTML

      进行Parse 并获取HTML中包含的所有资源(图片、flash等):(默认不选中)

      如果用户只希望获取特定资源,可以在下方的Embedded URLs must match 文本框中填入需要下载的特定资源表达式,只有能匹配指定正则表达式的URL指向资源会被下载

3右键点击“线程组”-->“添加”-->监听器-->“察看结果树”。



二、添加断言

        对于自动化测试来说,断言必须要有的,如果没有断言我们只能人眼对比对接口返回的数据,有了断言功能,就会简化这个过程。Jmeter提供了丰富的断言方法来帮助我们完成这个工作。



  要测试的响应字段:响应文本、Document(text)URL样本、响应信息、Response HeadersLgnore Staus等选项。虽然接口返回的是Json格式的数据,但对于Jmeter来说返回数据为文本,所以,这里可以勾选“响应文本”

  模式匹配规则:包括、匹配、EqualsSubstring。这里只需要验证返回数据中是否包含主要的关键字,所以,这里勾选“包括”。

  要测试的模式:其实就是断言的数据。点击“添加”按钮,输入要断言的数据。


猜你喜欢

转载自blog.csdn.net/vikeyyyy/article/details/80320885