• 使用jmeter做接口测试----柠檬不萌!


    一、乱码解决方案

    1、jmeter查看结果树乱码

    (1)在jmeter的bin目录下找到jmeter.properties这个文件,添加上
    sampleresult.default.encoding=utf-8
    (2)重启jmeter
     

    2、jmeter body data里面有乱码怎么解决

    (1)在jmeter的bin目录下找到jmeter.properties这个文件,添加上
    jsyntaxtextarea.font.family=Hack
    (2)重启jmeter
     

    二、使用jmeter做接口测试

    测试接口之前,得有一个接口文档。我们用以下接口文档来讲解:
    账号:xiaohei
    密码:123456
     
    打开jmeter,依次添加:线程组、HTTP请求、查看结果树
     

    1、请求方式:get

    范例:获取学生信息接口
     

    2、请求方式:post

    范例:登录接口
     
     
     

    3、请求方式:post,入参是json类型

    范例:添加学生信息接口
    添加学生信息接口文档:http://doc.nnzhp.cn/index.php?s=/6&page_id=10
     
     
     

    4、添加cookie

    范例:学生金币充值
    学生金币充值接口文档: http://doc.nnzhp.cn/index.php?s=/6&page_id=11
     
     
     
     

    5、如何添加header信息

    范例:获取所有学生信息
     
     
     
     
     

    6、文件上传接口

    上传文件接口文档地址:http://doc.nnzhp.cn/index.php?s=/6&page_id=13
     
     
     

    三、jmeter的参数化

     

    1、第一种方法:用户定义的变量

     
    这种就是为了方便管理参数,只能有一个值,比如说ip地址不经常变化的
     
     
     
     

    2、第二种方法:函数生成器

    函数生成器可以参照一定的规则生成数据,这样的比如说生成一些随机数
     
    (1)随机函数__Random
     
     
     
    (2)计数函数__counter
    此函数从1开始,每调用这个函数一次它就会自动加1
    第一个参数:True,那么每个用户有自己的计数器,可以用于统计每个线程各执行了多少次。False,全局计数器。
    第二个参数:重用计数器函数创建值的引用名。测试人员可以这样引用计数器的值:${test}。这样一来,测试人员就可以创建一个计数器后,在多个地方引用它的值。
     
     
    (3)时间函数__time
    hh代表12小时制,HH代表24小时制,如果函数的值什么都不写,则值取时间戳。
    注释:时间戳,从计算机发明的那一天到现在过了多少秒(可以百度时间戳转换工具,转换成时间)。jmeter是java开发的,java里面的时间戳默认是精确到毫秒,所以要除以1000才是真正的时间戳
     
     
    4)唯一id函数__UUID
    这个就是每次会生成一个随机的uuid,都是唯一的
     

    3、第三种方法:从文件中读取

    文件读取就是事先写好一些数据,然后从文件中读取,这样的话,比如说登录接口,账号和密码都是我们事先注册好的
     
    添加--配置原件--CSV data set config-添加文件,取名字,在参数中用${你取得名字}代替。
     
     
     
     
     
    小提示:
    如果把文件放在bin目录下,可以只写文件名,不用放绝对路径了。
     
     
     

    四、jmeter的关联

    调用第一个接口,从接口的返回数据中拿到某个值,放到第二个接口里面来用
    举例:登录得到的cookie,传给金币充值接口
     
     
    1、登录时得到如下返回
    {
    "error_code": 0,
    "login_info": {
    "login_time": "20180811173721",
    "sign": "f9ed588147c86ca4c600a0bac2b13179",
    "userId": 1
    }
    }
     
    2、于是得到函数(&代表大括号):
    $.login_info.sign
     
    3、登录接口下添加“后置处理器--JSON Extractor”,在哪个请求获取数据,就放在哪个请求的下面。
    小提示:当返回不是json格式时,可以用正则表达式提取器
     
     
    4、把函数复制过去,取一个名字比如sessionid
     
     
    5、在金币充值下添加“HTTP信息头管理器”,在HTTP信息头管理器中添加Cookie
     
     
    6、填写好金币充值接口
     

     
    7、执行,我们看到debug已经取到sessionid了,说明执行成功!
     
     
  • 相关阅读:
    JS移动端滑屏事件
    css3,background-clip/background-origin的使用场景,通俗讲解
    addEventListener和on的区别
    JavaScript 变量生命周期
    label标签跳出循环
    js替换指定字符串
    使用ECMAscript5中的forEach函数遍历数组
    截取js数组中某段值(slice)
    数组的一个强大函数splice,[增,删,改]
    删除数组值
  • 原文地址:https://www.cnblogs.com/haifeima/p/9471678.html
Copyright © 2020-2023  润新知