51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

测试开发精英班,通向高级软件测试工程师论坛测试积点免费获取渠道攻略【长期招募】博为峰网校招聘兼职讲师!横扫BAT,Python全栈测试开发技能大全
【109期】:python爬虫的魔力 !2020不玩虚的,先来一波技术PK! 【专题】用尽一切办法只为让你学好用例 自学软件测试那点事
查看: 3338|回复: 6

【转】jmeter接口测试

[复制链接]
  • TA的每日心情
    慵懒
    2019-12-16 16:08
  • 签到天数: 497 天

    连续签到: 1 天

    [LV.9]测试副司令

    发表于 2016-11-7 11:53:50 | 显示全部楼层 |阅读模式
    一、Jmeter简介
    Jmeter是apache公司基于java开发的一款开源压力测试工具,体积小,功能全,使用方便,不像loadrunner那样体积大,是一个比较轻量级的测试工具,使用起来非常的简单,深受测试人员的喜爱,但是它的测试报告没有loadrunner的那么详细,看起来没有那么的直观。因为它是java开发的,所以运行的时候必须要安装jdk才可以,jmeter是免安装的,拿到安装包之后直接解压就可以使用了,它也是跨平台的在linux、windows、macos上都可以使用。
    二、Jmeter-http接口脚本
    1、添加线程组
    2、添加http请求
    3、在http请求中写入接口url、路径、请求方式、参数
    4、添加查看结果树
    5、调用接口、查看返回值

    Jmeter-http接口脚本添加header:


    Jmeter-http接口脚本添加cookie:

    在这里添加cookie的时候,不要忘了把域这里写上接口的url,否则是不生效的,还有一种方法也是可以添加cookie,那就是在header里面添加一个key是cookie,值为cookie的值就好了,两种方法都可以


    三、Jmeter-webservice脚本
    1、在soapui中新建已经soap项目,导入wsdl地址,获取到请求报文、SOAPAction和请求url(在soapui的raw中能找到)


    2、打开jmeter新建一个线程组
    3、新建一个SOAP/XML-RPC Request

    4、把url、soapaction和请求报文写到soaprequest中
    5、调用接口、查看返回值

    四、Jmeter-参数化
    参数化是干嘛的呢,咱们在调用接口的时候,有入参,那参数里面的值如果经常变化的话,就得每次去改了,很麻烦,这时候咱们就把需要经常变的值,改成可以变化的或者是咱们提前设置好的一些值,这样的话,调用的时候就不用每次都改它的值了
    1、Jmeter参数化的方式有三种
    用户定义的变量——这种就是为了方便管理参数,只能有一个值,比如说ip地址不经常变化的
    函数生成器——函数生成器可以参照一定的规则生成数据,这样的比如说生成一些随机数
    从文件中读取——文件读取就是事先写好一些数据,然后从文件中读取,这样的话,比如说登录接口,账号和密码           都是我们事先注册好的


    2、用户定义的变量
    value就可以了,key就是这个参数的名称,也就是你在脚本里面取的值,value就是具体值了。在取参数化的值的时候,使用${name}这样去取值,name就是你取的变量名称。


    3、函数生成器
    函数助手的话,可以按照规则生成一些参数,比如说随机数取当前时间,最常用的就是这两种。

    随机数__Random——可以在你指定的一个范围内取随机值

    取当前时间__time——如果在有一些需要传时间的情况下可以使用,日期格式是:
                                           yyyy-MM-ddHH:mm:ss
                                           年-月-日-小时:分钟:秒

    取唯一id,__UUID——这个就是每次会生成一个随机的uuid,都是唯一的


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


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


    六、Jmeter关联
    我们知道断言是从返回结果中检查有没有预期的值,现在有一个问题,有一个购买商品的接口,必须要先登录才能够购买商品, 那么你调用接口的时候怎么知道是否已经登录了,一般这样的都会在调用的时候传一个token的参数,服务端判断token是否过期或者token是否正确,如果正确的话,那就是登录成功了就可以买东西了。
    那么这样的话,你就要先获取到token,token是从呢来的呢,肯定是从登录接口返回的,因为要先登录嘛,那这样就得先调用登录接口, 获取到token,然后把获取到的token传给购买商品的这个接口。
    关联就是做这个事的,它就是获取到返回的值,然后保存起来,给别的请求使用,或者做一些其他的处理。

    =====Jmeter中的关联是通过正则表达式提取器来完成的。




    =====通过上面的关联就可以把返回中我们想要的值抓到了,给其他请求使用的时候,直接使用${name}即可,name就是你关联的时候设置的变量名。


    七、Jmeter操作mysql
    1、Jmeter操作mysql步骤:

    1)、导入jdbc的jar包,因为jmeter本身不能直接连接mysql,所以需要导入第三方的jar包,来连接mysql

    2)、创建数据库连接配置,mysql的url、端口号、账号、密码
    3)、写sql,执行sql

    4)、查看结果

    2、Jmeter数据库驱动列表
    数据库
    驱动
    数据库url
    mysql
    com.mysql.jdbc.Driver
    jdbc:mysql://host:port/{dbname}?allowMultiQueries=true
    oracle
    org.postgresql.Driver
    jdbc:postgresql:{dbname}
    PostgreSQL
    oracle.jdbc.driver.OracleDriver
    jdbcracle:thin:user/pass@//host:port/service
    MSSQL
    com.microsoft.sqlserver.jdbc.SQLServerDriver
    或者
    net.sourceforge.jtds.jdbc.Driver
    jdbc:


    回复

    使用道具 举报

    该用户从未签到

    发表于 2017-7-13 22:11:57 | 显示全部楼层
    为什么图片都看不了????
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2020-1-21 12:01 , Processed in 0.071475 second(s), 27 queries .

    Powered by Discuz! X3.2

    © 2001-2020 Comsenz Inc.

    快速回复 返回顶部 返回列表