• python自动化测试-D1-学习笔记之二


    Jmeter

    一、Jmeter连接数据库

    1、打开Jmeter,在Jmeter—测试计划中添加mysql的jar包,见如下截图:

    2、添加好jar包后,添加jdbc,并进行设置,如下图

    3、添加JDBC Request,然后在JDBC Request中操作数据库见截图

    需要注意的是,在jdbc request中操作数据库时,需要根据不同语句,来选择不同的query type(执行类型)

    如果是insert、update、delete等语句,需要更改query type

    执行多条语句的时候,不同执行类型的语句不能放在一起

    4、察看结果树

     二、Jmeter的参数化问题

    如果参数是应用于所有脚本,则将参数化的文件设置在线程组下层,如果需要应用于某一个脚本,则增加至某一脚本下层

    jmeter参数表达式为:${参数名}

    一般参数化的时候都需要设置线程组的循环次数等,具体如下图:

    1、文件参数化:

    从文件中读取的话,三个步骤
    1、读取文件
    2、取文件内容里面的参数,给它一个名字
    3、使用值
    从文件读取的话,需要在线程组里面添加一个CSV Data Set Config,它就是做前面两步的操作的

    将参数写到txt文档中,然后用jmeter调用

    (1)文件写好后,添加CSV Data Set Config

     具体实施案例如下:

    (2)脚本中设置参数

    注意文件中有中文的问题,需要设置内容编码为utf-8

    (3)察看结果树,显示执行成功

     

     2、函数参数化:

    函数助手的话,可以按照规则生成一些参数,比如说随机数取当前时间,最常用的就是这两种。
    随机数__Random,可以在你指定的一个范围内取随机值
    取当前时间__time,如果在有一些需要传时间的情况下可以使用,日期格式是:
    yyyy-MM-dd HH:mm:ss
    年-月-日-小时:分钟:秒
    取唯一id,__UUID,这个就是每次会生成一个随机的uuid,都是唯一的

    函数参数化,找到函数助手,生成函数字符串,然后直接应用于脚本即可

    函数助手所在位置如下图:

     

    具体应用案例如下图:

     

    3、用户定义的变量

    在线程组中添加一个用户定义的变量,然后写key和value就可以了,key就是这个参数的名称,也就是你在脚本里面取的值,value就是具体值了。在取参数化的值的时候,使用${name}这样去取值,name就是你取的变量名称。

    一般这个变量应用于所有脚本,设置在外层,如下图:

    三、Jmeter关联

    举例:有一个充值的接口,但是需要登录后才能进行充值,要确定是否登录,则需要去登录接口取一个sessionid,但是每次登录这个sessionid都是变化的,所以我们需要对这个sessionid进行关联处理,在jmeter中,我们可以通过利用json path抽取变量或正则表达式的方式获取变量

    1、利用Json Path 抽取数据:在哪个接口获取变量,则json path放在哪个接口下面

    (1)先在登录接口执行登录操作后,找到察看结果树中响应数据里的sessionid看一下是属于哪一层下面的,然后在对应的jsonpath espression中写上,格式为:$.XXX.XXX

     

    (2)在充值脚本中进行参数设置:

    因为需要添加cookie,所以需要在脚本中添加HTTP Cookie管理器,在cookie管理器中写入抽取的数据。

    名称=admin用户登录名,值=登录里的session ,域=“服务器名称或IP”  路径:空,安全:不选,如选择,则将登录名加密

     

    2、利用正则表达式抽取数据

    (1)根据登录接口的响应数据返回的json串,来写正则表达式

    (2)

     四、Jmeter断言

    断言是什么呢,它是用来检查返回结果对不对的。
    用来验证结果是否正确,如果正确的话,就代表这个请求的返回是正确的,如果没有的话就代表这个请求的结果和我们预期的不一致,这样我们就可以通断言来检查返回结果,测试是否通过。

  • 相关阅读:
    Net Core 使用外部登陆提供程序登陆的流程,以及身份认证的流程
    Xamarin开发手机聊天程序
    线上处理数据转载
    Logstash
    Webpack按需加载一切皆模块
    网络编程
    NET Core 事件总线
    Using INSERT IGNORE with MySQL to prevent duplicate key errors
    Spring的两种任务调度Scheduled和Async
    Embedded servlet containers
  • 原文地址:https://www.cnblogs.com/blackbird0423/p/8031480.html
Copyright © 2020-2023  润新知