zoukankan      html  css  js  c++  java
  • 接口测试03-jmeter实操

    如何用jmeter做接口测试?

    1、 设计操作步骤:这里我们创建HTTP请求即可

    添加——Sampler(取样器)——HTTP请求

    2、 设计数据用例:由于jmeter只支持CSV文件,所以设计测试用例时记得生成CSV格式的,将CSV导入到jmeter中(这部分在性能测试里面叫做jmeter的参数化)

    添加——配置元件——CSV数据文件设置

    3、 断言,添加一个响应断言即可(也可以加别的)

    添加——断言——响应断言

    4、 执行,添加一个结果树

    添加——监听器——查看结果树

     一、jmeter工具测试接口时使用步骤:

    首先要添加线程组(添加--Threads(Users)--线程组)

    测试计划右键--添加--Threads(Users)--线程组(线程数就是并发数)

    1、添加HTTP请求(添加——Sampler(取样器)——HTTP请求)

    线程组右键--Sampler--HTTP请求--填写域名或IP、端口默认80,选择请求方式get,输入接口url域名后面的路径以及?后面的参数及值,最上面的请求名称可以进行修改--点击上面的运行按钮去查看。

    2.添加csv数据文件设置:添加——配置元件——CSV Date Set Config

    3、断言:添加一个响应断言。(添加——断言——响应断言)

    响应断言:   右键线程组--添加--断言---响应断言

    4、执行,添加察看结果树(添加——监听器——察看结果树)

    查看:右键线程组--添加--监听器--察看结果树--点击上面的运行按钮,查看返回值

     5、添加断言结果:右键线程组--添加-----监听器----断言结果

    6、添加添加cookie

    说明:避过登录,直接请求接口

    查看cookie信息:

    一般要加到最前面就行,其他什么都不用写。(这里其实用不上。在需要自动管理cookie和手动管理cookie时用。)

    添加cookie管理器:

    线程组(添加)-----配置元件----HTTP Cookie 管理器

     二、接口测试的情况

    聚合数据:https://www.juhe.cn/ucenter/account

    选择:我的接口----AppKey(后面要添的)----接口(点击)

     看API文档:

    看错误码参照:

    1、get请求方式:

    接口地址:http://v.juhe.cn/weather/index

    使用步骤:

    1)选择HTTP请求--------服务器名称(域名)或ip:v.juhe.cn----------协议:http----------  方法:GET--------   路径:/weather/index--------  Parameters:

    cityname 上海
    key 32d1b2ada7885afbb3a0a516d9298bf

     2)选择察看结果树-----点击(上面绿色)三角形:开始运行程序--------点击两把扫帚:清除下面的结果

    查看:   点击下面的HTTP请求-----响应数据(可以根据这里面的数据进行断言)例如:error_code:10001

    有可能会遇到这样的问题:报了一个下面的错,没有显示上面的响应数据。

    原因是它的接口参数升级了:cityname参数需要编码后传过去。

    解决办法:把第一个参数(cityname)后面的小勾勾上就好了。

    小技巧:点击下面的HTTP请求-----请求:(GET方式参数是放在url里的,排错的时候,也可以把这个地址放在浏览器运行)

     

    3)响应断言:测结果可包含10001,输入10001即可。

    4)断言结果:下面只显示HTTP请求。说明上面的响应断言判断的是对的。如果响应断言判断错误,下面就会出现错误信息。

    例如:在响应断言中输入:10002。看断言结果就显示响应断言失败,10002不在里面。

    2、post请求方式:

    接口地址:http://v.juhe.cn/weather/geo

    使用步骤:

    1)选择HTTP请求--------服务器名称(域名)或ip:v.juhe.cn----------协议:http----------  方法:POST--------   路径:/weather/geo-------  Parameters:

    lon 116.39277
    lat 39.933748
    dtype json
    key 32d1b2ada7885afbb3a0a516d9298bf

    2)擦看结果树:运行三角形。就有下面的。error_code:10001。是key值错了。(因为请求次数有限,所以故意写错。)参数写错,也是一个测试用例。

     可以看出:post请求参数是和url分开的,放在Post  data里面的。

    3 参数化

    当使用JMeter进行测试时,测试数据的准备是一项重要的工作。若要求每次迭代的数据不一样时,则需进行参数化,然后从参数化的文件中来读取测试数据。

    参数化是自动化测试脚本的一种常用技巧,可将脚本中的某些输入使用参数来代替,如登录时利用GET/POST请求方式传递参数的场景,在脚本运行时指定参数的取值范围和规则。
     
    脚本在运行时,根据需要选取不同的参数值作为输入,该方式称为数据驱动测试(Data Driven Test),而参数的取值范围被称为数据池(Data Pool)。
     
    下面三种方式都可以读取txt,csv类型数据(就是以.txt和.csv结尾的文件)。(都是访问vm上TT的项目。)
     
    1.csv读取文件
    添加----配置元件-----Csv Date Set Config
     
    2.函数助手读取文件
    选项-----函数助手对话框----_CSVRead函数
     
    3.通过用户参数设置数据
     添加----前置处理器----用户参数
     
    运行项目,想要vm上运行项目,windows上可以访问
    1)输入下面代码:
    python manage.py runserver 0.0.0.0:8000
    2)输入ifconfig,查看ip
     

    3) 在windows浏览器输入:http://192.168.44.133:8000/index  就可以访问了。

    方式一、通过读取csv、txt文件获取数据

    步骤如下:

    • 1.添加csv数据文件设置(配置元件)
    • 2.csv中填写用数据路径和变量名(变量名随便起的)
    • 3.http中填写参数值:${变量名}
    • 4.线程组:循环次数设置3次。(按文件行数来读取数据)

    1)选中线程组--->配置元件--->CSV Data set config

    2)CSV Date Set Config :填写数据路径和变量名

    Filename:G:2020软件测试代码3_接口及性能测试接口测试day2/data1.txt   (数据路径)

    变量名:user name(随便取得)

    变量名之间用英文逗号隔开

    3)HTTP请求中:使用${变量名}来读取文件每一列内容。服务器名称或IP:192.168.44.133------端口:8000(这里一定要添的) ------username:${user}   pwd:${name}

    4)data1.txt: 第一行:user读的是:zyc  name读的是:123456;第二行:user读的是hjhf   name读的是232;依次类推。(注意:通过文件的行数来决定读取内容)

    5)通过配置元件读取CSV:线程组:设置循环次数,3次。

     

    6)查看:察看结果树,有三个HTTP请求。这里红色的没关系,因为是我没开启TT项目,所以就不能访问。只要看发送的username  pwd获取的数据。

     

    补充:HTTP Cookie管理器,一般要加到最前面就行,其他什么都不用写。(这里其实用不上。在需要自动管理cookie和手动管理cookie时用。)

    他可以像浏览器一样存储和发送cookie,如果你要发送一个带cookie的http请求,cookie manager会自动存储该请求的cookies,并且后面如果发送同源站点的http请求时,都可以用这个cookies。每个JMeter线程都有自

    己的“cookie存储区域”。

    现在对于JMeter来说,一个测试计划只能有一个cookie管理器。因为当多个magager存在时,JMeter目前还没有方法来指定使用那个manager。同时,一个cookie manager中的存储的cookie也不能被其他cookie

    manager所引用,所以同一个计划中不建议使用多个cookie manager

     

    方式二、通过函数助手读取csv、txt文件

    步骤如下:

    • 1.选项---函数助手对话框---CsvRead函数
    • 2.填写csv文件的位置,读取的第几列(从0开始),点击生成。
    • 3.复制到http的参数值:也是${变量名}
    • 4.线程组:线程数设置3次(按不同用户读取文件内容)

    1)选项菜单-->函数助手对话框--->__CSVRead函数

    2)CSV文件的位置:G:2020软件测试代码3_接口及性能测试接口测试day2data1.txt  

    3)按照上图1-2-3的步骤

    操作:4中填写文件的位置,5中填写要读取的列的位置,第一列为0。点击【生成】按钮,拷贝字符串,去HTTP请求中替换要参数化的值。

    4)注意:函数助手是按照不同用户读取文件内容

    5) 查看:察看结果树

    方式三、通过用户参数设置数据

    步骤如下:

    • 1.添加用户参数(前置处理器)
    • 2.添加用户和变量构造多条数据
    • 3.线程组:线程数设置为3(按不同用户读取文件内容)
    • 4.http中填写变量:${变量名}

    1)选中线程组--->添加前置处理器中的用户参数选项

    2)通过添加变量和用户来构造多条数据

    3)注意:是由不同的用户决定读取的内容

     4)HTTP请求中也是写变量。

     5) 查看:察看结果树

    1.    (按不同用户读取文件内容)

  • 相关阅读:
    Reddit 转载 Drunk Post: Things I've learned as a Sr Engineer
    算法28 30 二叉树非递归遍历(前中后)
    C++ 子类构造函数初始化列表与基类关系
    算法31 leetcode102 二叉树的层序遍历
    C++由数组构建二叉树指针
    windows下编译源代码安装软件
    算法27 leetcode101 对称二叉树
    算法31 88. 合并两个有序数组
    c++:const修饰指针
    c++ 正则实现 千分位分割
  • 原文地址:https://www.cnblogs.com/zhangyangcheng/p/12630613.html
Copyright © 2011-2022 走看看