hrunrunner实现接口参数关联和参数化

解决参数关联有2种方式:extract提取参数,debugtalk辅助函数获取。

先看第一种,extract提取参数:

登录成功后直接用extract提取返回content里面的token参数:

然后在下一个请求里面直接用$token去引用

第二种:debugtalk辅助函数获取

先建立一个debugtalk.py结尾的文件,然后在写一个登录获取token的函数,内容如下:

import requests

url = ‘http://49.235.92.12:9000/api/v1/login‘

def get_token(username=‘test‘, pwd=‘123456‘):
    body = {"username": username, "password": pwd}
    header = {"User-Agent": "Mozilla/5.0", "Content-Type": "application/json"}
    r = requests.post(url=url, json=body, headers=header)
    try:
        result = r.json()
        token = result[‘token‘]
        return token
    except Exception as e:
        print(‘获取失败原因{}‘.format(e))
        print(‘返回结果{}‘.format(r.text))
        return ‘‘

if __name__ == ‘__main__‘:
    print(get_token())

接下来就是在yml文件用${get_token()}引用这个函数,将登录的token值传递到请求头里面

最终运行结果:

要在hrun里面实现参数化也是很简单的,只需要加上parameters的参数,添加上对应的参数,然后引用参数就可以了。

yml文件如下:

-   config:
        name: testcase description
        variables:
          pwd: 123456
        parameters:
        - username: [test,test1,test2]

-   test:
        name: /info
        request:
            headers:
                Content-Type: application/json
                User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36
                    (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36
                Authorization: Token ${get_token($username,$pwd)}
            method: GET
            url: http://49.235.92.12:9000/info
        validate:
        -   eq: [status_code,200]
        -   eq: [content.code,0]
        -   eq: [content.data.0.name,test]

原文地址:https://www.cnblogs.com/xiamaojjie/p/12095999.html

时间: 2024-07-31 13:11:15

hrunrunner实现接口参数关联和参数化的相关文章

python接口自动化-参数关联和JSESSIONID(上个接口返回数据作为下个接口请求参数)

参数关联是接口测试和性能测试最为重要的一个步骤,很多接口的请求参数是动态的,并且需要从上一个接口的返回值里面取出来,一般只能用一次就失效了.最常见的案例就是网站的登录案例,很多网站的登录并不仅仅只传username和psw两个参数,往往有其它的动态参数.有时候还需要带上cookies参数,如JSESSIONID 登录参数 首先分析下目标网站[学信网:https://account.chsi.com.cn/passport/login]的登录接口请求参数.先随便输入账号和密码,使用fiddler工

python接口自动化(十六)--参数关联接口后传(详解)

简介 大家对前边的自动化新建任务之后,接着对这个新建任务操作了解之后,希望带小伙伴进一步巩固胜利的果实,夯实基础.因此再在沙场实例演练一下博客园的相关接口.我们用自动化发随笔之后,要想接着对这篇随笔操作,不用说就需 要用参数关联了,发随笔之后会有一个随笔的 id,获取到这个 id,继续操作传这个随笔 id 就可以了(博客园的登录机制已经变了,不能用账号和密码登录了,这里用 cookie 登录) 大致流程步骤:web界面操作登录抓包查看cookie—>代码模拟cookie登录—>web界面操作新

手把手教会使用Jmeter进行压测,涉及参数提取、参数关联、CSV参数化

手把手简单介绍一下Jmeter的使用方法,以某平台APP登录接口为例: 1)单接口压测. 2)依赖其它接口参数.以获取用户信息为例. CSV参数化. 参数提取. Json提取器与正式表达式提取器. 方便初学者使用,Jmeter可以友好的选择简体中文: 一.单接口压测 步骤: 添加 ->线程(用户)->线程组 在线程组上 添加->取样器->HTTP请求 在HTTP请求上 添加->配置元件->察看结果树 Jmeter结果页: 操作演示: 任何接口信息都预先使用抓包工具查看接

jmeter压测学习3-提取json数据里面的token参数关联

前言 现在很多接口的登录是返回一个json数据,token值在返回的json里面,在jmeter里面也可以直接提取json里面的值. 上一个接口返回的token作为下个接口的入参. 案例场景 我现在有一个登陆接口A,登陆成功后返回一个token值.有一个获取绑定卡号的接口B,但是接口B必须要先登录后传登录的token才能访问 A接口登录接口文档基本信息 访问地址:http://127.0.0.1:8000/api/v1/login/ 请求类型:POST 请求头部:application/json

使用Postman实现接口数据关联

首先下载安装Postman直接打开官网,点击下载按钮即可完成下载https://www.getpostman.com/downloads/ 栗子业务场景:用户登录医生账户,查询自己的处方列表数据:用户登录成功后,服务端返回一个token,客户端在查询列表数据的请求header中添加上对应的token,才可以查询成功 具体看下在Postman中如何操作: step1 先添加一个集合,集合可以理解为一个项目/模块文件夹,可以把一个模块的接口都放到同一个集合里,点击“New Collection”创建

C#进阶系列——WebApi 接口参数不再困惑:传参详解

C#进阶系列--WebApi 接口参数不再困惑:传参详解

如何写出安全的API接口?接口参数加密签名设计思路

开发中经常用到接口,尤其是在面向服务的soa架构中,数据交互全是用的接口. 几年以前我认为,我写个接口,不向任何人告知我的接口地址,我的接口就是安全的,现在回想真是too young,too simple.但凡部署在广域网的应用程序,随随便便的好多工具可以根据ip或域名扫描应用程序的所有暴露的接口,进而分析参数,注入程序,分分钟被攻击. 那咋才能保证接口的安全性呢? (一)面临的主要安全问题 a.网络环境假设: a1.假设公共网络(Internet,如:WIFI.非家庭网络.非办公网络等) 是不

MFC OCX 事件 / 属性 / 接口参数相关小结

1.事件 1.1 事件的添加 控件的事件一般都是由对外的接口引发.事件应该是属于窗口的,所以在Ctrl类上单击右键->添加. 事件函数的名字就是事件名称,参数就是在添加事件时候设置的参数.控件里边通过参数将结果给了事件函数,从而将值传出. 参考链接:http://blog.csdn.net/wd_cloud/article/details/40893033 1.2 子线程中事件的触发传出 //define   a   custom   message:         a)     #defin

System.ComponentModel.DataAnnotations表示与数据字段和参数关联的数据类型的枚举

表示与数据字段和参数关联的数据类型的枚举. 命名空间:  System.ComponentModel.DataAnnotations程序集:  System.ComponentModel.DataAnnotations(在 System.ComponentModel.DataAnnotations.dll 中) 语法 C# C++ F# VB public enum DataType 成员   成员名称 说明   CreditCard 表示信用卡号. Currency 表示货币值. Custom