上一篇中,我们了解到了config,在配置中,我们可以配置测试用例级级别的一些设置,比如基础url、验证、变量、导出。

我们一起来看,官方给出的一个例子:

  1. from httprunner import HttpRunner, Config, Step, RunRequest, RunTestCase
  2. class TestCaseRequestWithFunctions(HttpRunner):
  3. config = (
  4. Config("request methods testcase with functions")
  5. .variables(
  6. **{
  7. "foo1": "config_bar1",
  8. "foo2": "config_bar2",
  9. "expect_foo1": "config_bar1",
  10. "expect_foo2": "config_bar2",
  11. }
  12. )
  13. .base_url("http://demo.qa.com")
  14. .verify(False)
  15. .export(*["foo3"])
  16. )
  17. teststeps = [
  18. Step(
  19. RunRequest("get with params")
  20. .with_variables(
  21. **{"foo1": "bar11", "foo2": "bar21", "sum_v": "${sum_two(1, 2)}"}
  22. )
  23. .get("/get")
  24. .with_params(**{"foo1": "$foo1", "foo2": "$foo2", "sum_v": "$sum_v"})
  25. .with_headers(**{"User-Agent": "HttpRunner/${get_httprunner_version()}"})
  26. .extract()
  27. .with_jmespath("body.args.foo2", "foo3")
  28. .validate()
  29. .assert_equal("status_code", 200)
  30. .assert_equal("body.args.foo1", "bar11")
  31. .assert_equal("body.args.sum_v", "3")
  32. .assert_equal("body.args.foo2", "bar21")
  33. ),
  34. Step(
  35. RunRequest("post form data")
  36. .with_variables(**{"foo2": "bar23"})
  37. .post("/post")
  38. .with_headers(
  39. **{
  40. "User-Agent": "HttpRunner/${get_httprunner_version()}",
  41. "Content-Type": "application/x-www-form-urlencoded",
  42. }
  43. )
  44. .with_data("foo1=$foo1&foo2=$foo2&foo3=$foo3")
  45. .validate()
  46. .assert_equal("status_code", 200)
  47. .assert_equal("body.form.foo1", "$expect_foo1")
  48. .assert_equal("body.form.foo2", "bar23")
  49. .assert_equal("body.form.foo3", "bar21")
  50. ),
  51. ]
  52. if __name__ == "__main__":
  53. TestCaseRequestWithFunctions().test_start()

一、name(必填)

即用例名称,这是一个必填参数。测试用例名称,将显示在执行日志和测试报告中。比如,我在之前的百度搜索的case里,加入name。



运行后,在debug日志里,可以看的用例名称被展示出来。

二、base_url(选填)

其实这个配置一般在多环境切换中最常用。

比如你的这套测试用例在qa环境,uat环境都要使用,那么就可以把基础地址(举例http://demo.qa.com),设置进去。在后面的teststep中,只需要填上接口的相对路径就好了(举例 /get)。

这样的话,切换环境运行,只需要修改base_url即可。

三、variables(选填)

变量,这里可以存放一些公共的变量,可以在测试用例里引用。这里大家可以记住这个“公共”的词眼,因为在后面的Step中,还会有步骤变量。

比如说,我的接口有个传参是不变的,比如用户名username,而且后面的没个Step都会用到这个传参,那么username就可以放在config的公共变量里。

另外,Step里的变量优先级是比config里的变量要高的,如果有2个同名的变量的话,那么引用的时候,是优先引用步骤里的变量的。

四、verify(选填)

用来决定是否验证服务器TLS证书的开关。

通常设置为False,当请求https请求时,就会跳过验证。如果你运行时候发现抛错SSLError,可以检查一下是不是verify没传,或者设置了True。

五、export(选填)

导出的变量,主要是用于Step之间参数的传递。还是以上面的官方代码为例:

  1. 在config中配置export“foo3”这个变量。
  2. 在第一个Step中,.extract() 提取了"body.args.foo2"给变量“foo3”。
  3. 在第二个Step中,引用变量"foo3"。

像参数传递,提取这些点,会放在后面单独讲解,前面还是以熟悉框架为主。

【HttpRunner v3.x】笔记 ——5. 测试用例-config的更多相关文章

  1. 【HttpRunner v3.x】笔记 ——3. 录制生成测试用例

    在正式手动编写case之前,我们可以先来熟悉下httprunner的录制生成用例功能. 用postman的童鞋都知道,里面有个功能可以将接口转换成代码,可以直接copy过来使用,提升case编写效率. ...

  2. 【HttpRunner v3.x】笔记—6. 测试用例-teststeps-RunRequest

    之前我们了解了config里的各项参数,今天来了解另一个重要部分--teststeps,在这之前,先看看测试用例的分层模型. 一.测试用例分层模型 一个testcase里(就是一个pytest格式的P ...

  3. 【HttpRunner v3.x】笔记 ——4. 测试用例-结构解析

    一.官方首推pytest格式 上篇文章我们知道了,httprunner可以支持三种格式的用例,分别是pytest.yaml和json.yaml和json是以前的版本所使用的用例格式,但是在3.x版本上 ...

  4. 【HttpRunner v3.x】笔记—7. 测试用例-teststeps-RunTestCase

    以前我在写接口自动化用例的时候,为了保证用例的独立性,需要在setUp里调用各种满足用例的一些前置条件,其中就不乏调用了其他测试用例中的方法. 而httprunner也是支持了这一项很重要的特性,通过 ...

  5. 【HttpRunner v3.x】笔记—8.运行testcase的几种方式

    在之前的demo过程中,已经运行过testcase了,那这篇就也来汇总一下,运行case相关的知识点. 一.运行testcase的几种场景 1. 运行单个case 通常单个case的话我会在编辑器里用 ...

  6. 【HttpRunner v3.x】笔记—8.用例引用、变量传递

    看到这里,对于httprunner已经有了一个大概的了解,现在想对于一些比较重要或者常用的功能,进行一些实践操作. 毕竟那谁说过,"纸上得来终觉浅,绝知此事要躬行." 上一篇提到了 ...

  7. 【HttpRunner v3.x】笔记 ——2. 用脚手架快速创建项目

    环境装好了,相信很多童鞋已经迫不及待的想run起来了,但是面对一个陌生的框架又无从下手.没关系,我们可以用脚手架来快速生成一个httprunner项目. 一.快速生成项目 我们不妨先输入httprun ...

  8. 【HttpRunner v3.x】笔记 ——1. 环境安装

    一.环境说明 HttpRunner 是一个基于 Python 开发的测试框架,可以运行在 macOS.Linux.Windows 系统平台上.笔者使用的是windows系统,所以后续都是基于windo ...

  9. 【HttpRunner v3.x】笔记 —— 开篇

    最近在社群聊天里,发现了一款适用于http协议的接口框架--HttpRunner.在对其有个大致了解后,我觉得这款框架优点多多,整合了接口测试中所配套用到的多种框架.通过优秀的封装,将case整合到一 ...

随机推荐

  1. 003_对go语言中的工作池代码练习的一些思考和改进

    在进行工作池的代码练习时候,我发现了一个有趣的事情,首先看下面一段代码: package main import "fmt" import "time" fun ...

  2. Java线程生命周期与状态切换

    前提 最近有点懒散,没什么比较有深度的产出.刚好想重新研读一下JUC线程池的源码实现,在此之前先深入了解一下Java中的线程实现,包括线程的生命周期.状态切换以及线程的上下文切换等等.编写本文的时候, ...

  3. CSS可见格式化模型

    1.盒模型 1.1 盒子大小 盒模型描述了元素如何显示,以及如何相互作用.相互影响. 页面中的所有元素都被看作一个矩形盒子,这个盒子包含元素的内容.内边距.边框和外边距. 给元素应用的背景会作用于元素 ...

  4. jquery 事件对象笔记

    jQuery元素操作 设置或获取元素固有属性   获取               prop(属性名)    修改               prop(属性名,值) 获取自定义属性          ...

  5. 排查Mysql突然变慢的一次过程

    排查Mysql突然变慢的一次过程 上周客户说系统突然变得很慢,而且时不时的蹦出一个 404 和 500,弄得真的是很没面子,而恰巧出问题的时候正在深圳出差,所以一直没有时间 看问题,一直到今天,才算是 ...

  6. XCTF-WEB-高手进阶区-NaNNaNaNNaN-Batman-笔记

    上来直接百度先搜下Batman -_-|| 不存在的传令兵么 本身是下载下来了一个文件web100 打开发现是如下内容 可以看出这个是个脚本语言,因此尝试修改后缀为html,发现是一个OK框 现在是想 ...

  7. RF,SVM和NN的优缺点

    1. 随机森林优缺点 随机森林(RF)是Bagging的一个扩展变体.RF在以决策树为基分类器进行集成的基础上,进一步在决策树的训练过程中引入了随机属性选择. Bagging就是对数据集训练多个基分类 ...

  8. C#LeetCode刷题之#933-最近的请求次数(Number of Recent Calls)

    问题 该文章的最新版本已迁移至个人博客[比特飞],单击链接 https://www.byteflying.com/archives/4134 访问. 写一个 RecentCounter 类来计算最近的 ...

  9. C#LeetCode刷题之#447-回旋镖的数量(Number of Boomerangs)

    问题 该文章的最新版本已迁移至个人博客[比特飞],单击链接 https://www.byteflying.com/archives/3792 访问. 给定平面上 n 对不同的点,"回旋镖&q ...

  10. express 洋葱模型 路由管理 中间件

    express 路由管理,通过 app.express();  app.METHOD(path,fn(req, res)的方式进行路由的配置.实现了请求的接口的路由的拆分.那么可以将路由配置,分发到不 ...