首页 > 其他分享 >Httprunner使用

Httprunner使用

时间:2023-05-08 21:22:56浏览次数:45  
标签:case Httprunner name url base 使用 config response

官方中文文档V3

https://www.ontheway.cool/HttpRunner3DocsForCN/concepts/step_case_suite/

官方文档主要以yaml为例子,所以也用的yaml

testcase结构分析:

 config:节点中设置当前文件全局的配置

  name:用例名

  base_url:全局base url,step中的url使用base_url开头

  parameters:全局参数,数据驱动使用

   teststeps:下为list,可以有多个step

  name是step name

  variables: step中用的变量

  request:

    url: request url

    method: GET,POST,PUT,DELETE等,必须是大写

    params: request url中的参数

    upload:上传文件,文件的相对路径以debugtalk.py文件位置为准

  extract:是response.body中的内容,可以用body.xxx或者content.xxx来搜索

      取cookie方法:

# 方法一:
 extract: 
      cookie: cookies
#方法二:
 eardown_hooks:
      - ${get_cookie($response)}
#debugtalk.py中:
    def get_cookie(response):
        cookies = response.cookies
        os.environ['envname']=cookies["cookiekey"]

  validate:是断言response中的内容,都怎么断言?

      可以使用:表达式:["jmespath表达式",expected_value,message] 

      例如 :

        eq: ["status_code", 200] 
    
        len_eq: ["body",1]

config:
    name: "initialize"
    variables: #设置当前测试文件中的全局变量
      username: [email protected]
      password: 1234567
    base_url: ${ENV(api_url)}  #引用环境变量
    parameters:  #全局参数,用于实现自动化数据驱动,怎么用?
        pa1: ["a"]
        pa2: ["b"]
    export: 
      - accessToken #整个测试用例的输出值,可以在作为其他case的测试步骤是被使用。
    verify: False #可以不写,V3默认为Flase
teststeps:
  - name: Get token
    variables:
      foo1: bar1
    request:
      method: GET
      url: /account/GetAccessToken
      headers:
        Content-Type: "application/json"
      params: 
        username: [email protected]
        password: 1qaz2wsxE
        clientId: eos
    extract:  #当前case的传出值,下边步骤step可以使用
      accessToken : body.accessToken #利用jmespath 提取Json response body的内容
    validate:
      - eq: ["status_code", 200] #用jmespath 提取Json response的内容,并进行断言校验。
Testsute结构:
  config是公共的
  每个testcase下是各自的
关于base_url:
  如果config中有设置,则所有case都用这个url,即使case单独配置也不行
  如果想每个case用单独的base_url,则去掉config中的base_url,单独设置case中的base_url
  base_url不管在config全局还是case中单独设置,至少要有一个。
config:
    name: suitename
    variables:
      username: xxx
      password: xxx
    base_url: ${ENV(api_url)}
    parameters: 
        pa1: ["a"]
        pa2: ["b"]
    export: 
      - accessToken
testcases:
-   name: Get Token
    base_url: ${ENV(api_url)}
    testcase: testcases\case1.yml
    variables: 
      a: 123
-   name: Login
    base_url: ${ENV(base_url)}
    testcase: testcases\case2.yml
    variables: 
      a: bcd

 变量引用: 

  使用${ENV(key)}引用环境变量中的值

  使用$variable直接引用用例中定义的变量

标签:case,Httprunner,name,url,base,使用,config,response
From: https://www.cnblogs.com/woniuguoguo/p/14957444.html

相关文章

  • 关于使用kubeadm reset命令对kubeadm init与kubeadm join操作后遇到报错的情况-进行恢
    在Kubernetes/k8s集群中,无论是在开始的master节点初始化,还是后面客户端使用kubeadmjoin命令加入到集群可能都会遇到很多报错,对于新手来说、很多还不是很好解决、也有一些情况,是在初始化之前忘记执行一些操作,而导致报错这种一般都需要执行漏掉的操作,重新执行初始化操作,但是如......
  • 使用 HTTP/2 加速 Node.js 应用
    我们想让现今使用Node.js构建的网站能够更加轻松的获得性能提升。为此,我们开发了netjet中间件,它可以解析应用生成的HTML并自动添加Link头部。当在一个示例的Express应用中使用这个中间件时,我们可以看到应用程序的输出多了如下HTTP头:本文是使用Ghost(一个博客发......
  • 使用 Ef core 时 报错Data is Null. This method or property cannot be called on
    1.问题在使用EFcore做查询操作的时候报错"DataisNull.ThismethodorpropertycannotbecalledonNullvalues.”"2.解决这是数据库中的某个属性为空导致,即使这个属性srting类型,也需要将字段标记为可空的......
  • MockMVC的使用
    简介MockMvc是一种基于Java和JUnit的测试框架,旨在测试SpringMVC应用程序的控制器层。它可以帮助我们模拟HTTP请求,检查响应值,以及发送表单数据和文件等。MockMvc可以与其他测试组件(如JUnit和Hamcrest)结合使用,以模拟RESTAPI端点或用户界面的操作。Get请求简单示例创建一个简......
  • 钉钉PC端使用 Blazor WebAssembly 读取用户信息
    功能:在钉钉内打开BlazorWebAssembly网站时,读取钉钉当前的用户信息,并显示启用的功能列表版本:.NET6界面库:AntDesignBlazor基础要求:1.让公司管理员设置自己为钉钉开发者2.下载钉钉RC版作为调试工具,下载地址:https://open.dingtalk.com/document/resource......
  • Jdk16中JcTree的使用问题
    因为jdk16进行了强制的模块化使用限制,需要增加add-opens去进行模块的放开,但是如果每次都需要在项目pom文件或者启动命令中增加,非常不优雅。而且很多重复的命令。所以想有没有更好的办法去解决。看了lombok1.18.20中的解决方法,这边来总结一下。lombok这个问题的讨论publica......
  • barrier 安装和使用 synergy最佳替代方案
    众所周知synergy是开源软件,但官编的正版是需要付费的,而barrier是synergyfork出的另一个版本,有热心网友便以维护,分支上开放了win和mac的下载,可以直接使用,而linux版本需要知己动手编译一下。附上github地址:https://github.com/debauchee/barrier/releases这个地址可......
  • NestJs 使用 RabbitMQ
    既然是使用RabbitMQ那先不管其他的把RabbitMQ装上再说RabbitMQ安装这里直接找他们官网就行https://www.rabbitmq.com/download.html这里我们选择使用docker安装快捷方便这里直接参考:https://juejin.cn/post/7198430801850105916我们要站在巨人的肩膀上,快速学习,具......
  • 实践|如何使用云函数去实现短信验证码功能
    目前,短信验证码广泛应用于用户注册、密码找回、登录保护、身份认证、随机密码、交易确认等应用场景。本文以使用云函数开发一个短信验证码登录注册服务为例,帮助您了解如何实现短信验证码功能。准备工作已 注册腾讯云 账号,并完成 企业实名认证。已购买短信套餐包。准备短信......
  • 【Oracle】使用xmlagg(xmlparse(content()).getclobval()拼接信息
    使用xmlagg(xmlparse(content()).getclobval()拼接信息简单来说格式如下xmlagg(xmlparse(content(内容||分割符)).getclobval()内容就是使用显示的数据部分,分隔符不同效果不同,分隔符可以使用chr()函数无分隔符xmlagg(xmlparse(content('这是一个字段:'||v.supercode||'、......