美文网首页Jmeter实用
【第五章】jemter参数化实战

【第五章】jemter参数化实战

作者: 码上版码 | 来源:发表于2020-11-03 00:39 被阅读0次

    本章大纲

    什么时候需要参数化技术

    参数化技术是什么

    jmeter实现参数化

    什么时候需要参数化技术

    单点登录:如果10个用户登录,用户名和密码不做参数化,后面的请求会将前面所有用户账号顶掉。

    adduser:增加用户但手机号唯一,就需要对手机号做参数化

    多点登录可以不做参数化,如果要真实的模拟用户操作,还是需要做参数化的

    参数化技术是什么

    参数化一般用法就是将脚本中的某些输入使用参数来代替,在脚本运行时置顶参数的取值范围和规则

    jmeter实现参数化

    参数化流程:

    ​ 找出需要参数化的数据

    ​ 准备提供给参数化需要的数据源

    ​ 把脚本里面的常量--变量(使用之前的数据源数据)

    jmeter参数化方式:

    1、CSV 需要配置元件

    ​ 使用场景:账号、密码

    ​ token是有时效的,一般有两种方式:1. 固定时效,比如:1个月;2. 不用就时效

    注释:首先要明确参数化的作用域:如果是对整个测试计划有用,将其放在测试计划下面,如果是对这个线程组有用则放在线程组下面;如果是对这个请求有用,则放在这个请求下面。
    1-1 添加csv数据文件设置:


    image.png

    1-2 设置数据文件:


    image.png
    1-3 将http请求参数常量改成变量:
    image.png
    重新发起请求即可

    2、函数式:

    随机数:通过函数助手 - _Random,比如:手机号就可以用随机数来表达
    time:通过函数助手 - _time,比如:订单号,编号类的就可以用时间戳来表达,默认ms,13位数据,如果是s,10位数据
    image.png

    果接口的请求头包含token时,我们需要从之前的接口中提取token,将提取到的token写入当前接口请求头信息中。

    示例:如果用jmeter测试,找到之前的接口,添加 - 后置处理器 - json提取器:输入token变量名,json path的语法格式:.token, ![image.png](https://img.haomeiwen.com/i9622367/352f32b9abcb983c.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) ![image.png](https://img.haomeiwen.com/i9622367/c1bcf57bd4f09175.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) 我们可以在“线程组 - 添加 - 取样器 - 调试取样器”,查看token是否提取成功,接口调通就不需要使用 调试取样器,直接禁用即可。 ![image.png](https://img.haomeiwen.com/i9622367/057467cd367e2ac0.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) 将提取出的token放入我们要测试的http请求的请求头中,token值:{getToken}

    image.png
    image.png
    Jmeter创建接口脚本时遇到的问题?

    msg:token值为空?
    解决方案:在请求头中添加一个token
    message:客户姓名必须为中文?
    解决方案:请求中添加编码格式
    message:该客户手机号码已存在?
    解决方案:手机号必须做参数化,通过函数助手中的__Random,设置最小值和最大值,生成表达式并拷贝,将其与写死的手机号替换


    image.png
    3、变量

    接口环境不同,使用的服务器ip就不同,我们可以“线程组 - 添加 - 配置元件 - 用户定义的变量”


    image.png
    image.png
    4、编程式
    引入外部的jar(比如:加密、算法、环境类的jar--开发给的),Java、class,直接导入
    image.png
    使用beanshell编程
    import com.uncleyong.MD5Util;
    String password_md5 = MD5Util.encryptToMD5("123456");
    vars.put("password_md5", password_md5);
    
    image.png image.png

    发送请求后,从查看结果树中可以看到请求的密码加密了


    image.png

    相关文章

      网友评论

        本文标题:【第五章】jemter参数化实战

        本文链接:https://www.haomeiwen.com/subject/kysevktx.html