06 2021 档案

摘要:管道表达式 投影是 JMESPath 中的一个重要概念。但是,有时投影语义不是您想要的。一个常见的场景是当您想要对投影的结果进行运算而不是将表达式投影到数组中的每个元素上时。例如,表达式 people[*].first将为您提供一个数组,其中包含 people 数组中每个人的名字。如果您想要该列表中 阅读全文
posted @ 2021-06-19 14:37 莫使娇躯空对月 阅读(91) 评论(0) 推荐(0)
摘要:投影-Projections 投影是 JMESPath 的主要功能之一。它允许您将表达式应用于元素集合。有五种投影: 列表投影 切片投影 物体投影 展平投影 过滤器投影 列表和切片投影 通配符表达式 创建一个列表投影,这是在一个JSON阵列的投影。 列表中嵌套多个字典,每个元素都是json对象每个元 阅读全文
posted @ 2021-06-19 14:35 莫使娇躯空对月 阅读(133) 评论(0) 推荐(0)
摘要:切片 切片允许您选择数组的连续子集。如果您曾经在 python 中使用过切片,那么您已经知道如何使用 JMESPath 切片。以最简单的形式,您可以指定起始索引和结束索引。结束索引是您不希望包含在切片中的第一个索引。 import jmespath li = [1, 2, 3, 4, 5, 6, 7 阅读全文
posted @ 2021-06-19 14:33 莫使娇躯空对月 阅读(57) 评论(0) 推荐(0)
摘要:基本表达式 对于字典,可以直接输入key来获取到对应的value(注意,search是jmespath提供的查询方法,第一个参数数是表达式,第二个参数是要查询的数据) import jmespath dict1 = { "a": "foo", "b": "foo1", "c": "foo2" } r 阅读全文
posted @ 2021-06-19 14:32 莫使娇躯空对月 阅读(118) 评论(0) 推荐(0)
摘要:JMESPath 是 JSON 的查询语言。您可以从 JSON 文档中提取和转换元素。下面的示例是交互式的。您可以更改 JMESPath 表达式并查看结果自动更新。 安装 pip install jmespath 查看 导入jmespath import jmespath 阅读全文
posted @ 2021-06-08 15:07 莫使娇躯空对月 阅读(200) 评论(0) 推荐(0)
摘要:变量优先级 有几种不同类型的variables,优先顺序可能会造成混淆。避免混淆的最好方法是使用不同的变量名。但是,如果必须使用相同的变量名,则应该了解优先级策略。 API文件 name: login api variables: p_username : test1 # api变量 p_passw 阅读全文
posted @ 2021-06-04 11:31 莫使娇躯空对月 阅读(241) 评论(0) 推荐(0)
摘要:python+requests--接口自动化测试 python接口自动化--get请求 python接口自动化--post请求 python接口自动化--json数据处理 python+selenium--自动化测试 python+selenium1--环境搭建 python+selenium2-- 阅读全文
posted @ 2021-06-04 11:30 莫使娇躯空对月 阅读(149) 评论(0) 推荐(0)
摘要:httprunner 可以自定义生成测试报告的模板,1.x版本里面有个 extent_report_template.html 模块非常美观。 但是生成报告的时候会报错:jinja2.exceptions.UndefinedError: 'dict object' has no attribute 阅读全文
posted @ 2021-06-04 11:29 莫使娇躯空对月 阅读(301) 评论(0) 推荐(0)
摘要:使用脚手架生成 HttpRunner 默认项目结构 转载:https://blog.csdn.net/weixin_42007999/article/details/105767996 在 HttpRunner 中实现了一个脚手架工具,可以快速创建接口测试推荐的目录结构。该想法来源于 Django 阅读全文
posted @ 2021-06-04 11:26 莫使娇躯空对月 阅读(193) 评论(0) 推荐(0)
摘要:.env 文件设置环境变量 如果在创建项目时未创建.env文件,可自行创建 在.env文件中加入base_url=http://127.0.0.1:8000 BASE_URL = http://127.0.0.1:8000 引用环境变量 在 HttpRunner 2.x版本中内置了函数 enviro 阅读全文
posted @ 2021-06-04 11:25 莫使娇躯空对月 阅读(106) 评论(0) 推荐(0)
摘要:HttpRunner的hook(钩子)机制:(setup/teardown)对请求和响应内容进行预处理 转载:https://blog.csdn.net/weixin_42007999/article/details/105788187 有些系统登录页面输入用户名和密码,出于安全考虑,提交前需要对密 阅读全文
posted @ 2021-06-04 11:24 莫使娇躯空对月 阅读(139) 评论(0) 推荐(0)
摘要:正常情况下的注册接口,使用用户名注册成功后,就不能使用相同的用户名进行注册 那如果我们想使用一个用户名进行重复注册和查看注册后是否在数据库中存在怎么办呢 使用setup_hooks前置将数据库中的数据清理掉 使用teardown_hooks后置查询数据库中的数据 所以我们需要连接数据库 debugt 阅读全文
posted @ 2021-06-04 11:23 莫使娇躯空对月 阅读(294) 评论(0) 推荐(0)
摘要:在 HttpRunner 中,hook 机制可以同时在“测试用例层面”和“测试步骤层面”使用,下面看一看同时使用这两个层面钩子的情况。 案例二: 用例层面 和 步骤层面 hook 的使用 在 debugtalk.py 文件中定义的 hook 函数: def print_msg2(type, msg) 阅读全文
posted @ 2021-06-04 11:22 莫使娇躯空对月 阅读(137) 评论(0) 推荐(0)
摘要:转载:https://blog.csdn.net/weixin_42007999/article/details/105788094 HttpRunner 实现了 hook 机制,hook 就是“钩子”的意思,可以在测试用例的一头和一尾各设置一个钩子,每个钩子可以对应一个提前定义好的函数(在 deb 阅读全文
posted @ 2021-06-04 11:20 莫使娇躯空对月 阅读(317) 评论(0) 推荐(0)
摘要:在测试用例集合(testsuite)中实现参数化: 用例中参数个数:2个 (用户名和密码同时进行参数化处理) 数据源提供:通过在外部 debugtalk.py 文件中定义函数实现 测试数据: 正确的“用户名/密码”组合为 “test/123456” 在debugtalk.py中定义2个函数 def 阅读全文
posted @ 2021-06-04 11:19 莫使娇躯空对月 阅读(67) 评论(0) 推荐(0)
摘要:在测试用例集合(testsuite)中实现参数化: 用例中参数个数:2个 (用户名和密码同时进行参数化处理) 数据源提供:通过在外部 debugtalk.py 文件中定义函数实现 测试数据: 正确的“用户名/密码”组合为 “test/123456” 在函数定义中,需要返回一个列表(list),列表里 阅读全文
posted @ 2021-06-04 11:17 莫使娇躯空对月 阅读(79) 评论(0) 推荐(0)
摘要:在 HttpRunner 中,除了将测试数据直接保存到测试用例集合内部、保存到CSV文件中,还可以通过调用 debugtalk.py 中自定义函数来动态生成测试数据,这样测试数据可以更加复杂和多样化 在测试用例集合(testsuite)中实现参数化: 用例中参数个数:1个 (用户名)数据源提供:通过 阅读全文
posted @ 2021-06-04 11:15 莫使娇躯空对月 阅读(111) 评论(0) 推荐(0)
摘要:在测试用例集合(testsuite)中实现参数化: 用例中参数个数:2个 (用户名和密码同时进行参数化处理)数据源提供:保存在外部 csv 文件中测试数据: 正确的“用户名/密码”组合为 “test/123456”关于组合: “用户名+密码”进行笛卡尔积式组合数据文件: 需要定义两个单独的 csv 阅读全文
posted @ 2021-06-04 11:13 莫使娇躯空对月 阅读(69) 评论(0) 推荐(0)
摘要:在测试用例集合(testsuite)中实现参数化: 用例中参数个数:2个 (用户名和密码同时进行参数化处理) 数据源提供:保存在外部 csv 文件中 测试数据: 正确的“用户名/密码”组合为 “test/123456” 关于组合: “用户名+密码”的组合数据已经提前在csv文件中定义好 params 阅读全文
posted @ 2021-06-04 11:12 莫使娇躯空对月 阅读(53) 评论(0) 推荐(0)
摘要:在测试用例集合(testsuite)中实现参数化: 用例中参数个数:1个 (用户名进行参数化处理) 数据源提供:保存在外部 csv 文件中 测试数据:两个错误用户名,一个正确用户名(test) data文件目录下新增params.csv文件 p_username admin1 test1 test 阅读全文
posted @ 2021-06-04 11:11 莫使娇躯空对月 阅读(90) 评论(0) 推荐(0)
摘要:在测试用例集合(testsuite)中实现参数化: 用例中参数个数:2个 (用户名和密码同时进行参数化处理)数据源提供:直接定义在测试集合文件内部测试数据: 正确的“用户名/密码”组合为 “test/123456”关于组合: 将用户名和密码进行全组合(笛卡尔积式组合),即每个用户名的取值都与每个密码 阅读全文
posted @ 2021-06-04 11:10 莫使娇躯空对月 阅读(110) 评论(0) 推荐(0)
摘要:在测试用例集合(testsuite)中实现参数化: 用例中参数个数:2个 (用户名和密码同时进行参数化处理) 数据源提供:直接定义在测试集合文件内部 测试数据: 正确的“用户名/密码”组合为 “test/123456” 关于组合: “用户名+密码”的组合数据已经提前定义好 登录api name: l 阅读全文
posted @ 2021-06-04 11:07 莫使娇躯空对月 阅读(96) 评论(0) 推荐(0)
摘要:在测试用例集合(testsuite)中实现参数化: 用例中参数个数:1个 (用户名进行参数化处理),为了便于演示,密码固定不变。 数据源提供:直接定义在测试集合文件内部 测试数据:两个错误用户名,一个正确用户名(test) 登录api name: login api variables: p_use 阅读全文
posted @ 2021-06-04 11:05 莫使娇躯空对月 阅读(152) 评论(0) 推荐(0)
摘要:HttpRunner参数化:参数化数据驱动概述 转载:https://blog.csdn.net/weixin_42007999/article/details/105773548 在测试场景中,针对每项功能,经常要准备多种类型的测试数据,以满足测试的覆盖率和充分性。针对自动化测试而言,相当于一份测 阅读全文
posted @ 2021-06-04 11:04 莫使娇躯空对月 阅读(143) 评论(0) 推荐(0)
摘要:HttpRunner自动化测试用例分层思想 转载:https://blog.csdn.net/weixin_42007999/article/details/105768092 在 HttpRunner 中提出了测试用例的分层思想。通过上一节脚手架的功能,实际已经体现了这种思想,将不同种类和作用的文 阅读全文
posted @ 2021-06-04 11:02 莫使娇躯空对月 阅读(144) 评论(0) 推荐(0)
摘要:在 HttpRunner 中,集成了requests_toolbelt 的文件上传功能,可以通过 upload 关键字简化文件的上传。 源码如下:httprunner-2.4.3\httprunner\ext\uploader\__init__.py """ upload test extensio 阅读全文
posted @ 2021-06-04 11:00 莫使娇躯空对月 阅读(203) 评论(0) 推荐(0)
摘要:使用 'name': file-tuple 方式上传文件,根据传入元组元素个数的不同,可以有三种形式: 2-tuple ``('filename', fileobj) 3-tuple ``('filename', fileobj, 'content_type') 4-tuple ``('filena 阅读全文
posted @ 2021-06-04 10:59 莫使娇躯空对月 阅读(153) 评论(0) 推荐(0)
摘要:文件上传,在 HttpRunner 中可以使用两种方式来实现: 通过 requests 模块约定方法上传文件 通过 requests_toolbelt 方式上传文件 通过 requests 模块约定方法上传文件 我们知道 HttpRunner 实际是对 requests 模块的封装,而 reques 阅读全文
posted @ 2021-06-04 10:47 莫使娇躯空对月 阅读(138) 评论(0) 推荐(0)
摘要:HttpRunner 还可以用 skip 关键字跳过某个用例步骤的执行。而且这个功能也是借助于 unittest 的skip来实现的。 HttpRunner 跳过步骤执行包括以下几个关键字: skip: reason 确定跳过本步骤 skipIf: condition 如果条件成立,则跳过本步骤 s 阅读全文
posted @ 2021-06-04 10:45 莫使娇躯空对月 阅读(403) 评论(0) 推荐(0)
摘要:在测试用例中,通过 times 关键字可以设置每个测试步骤的执行次数。 设置方法: - test: times: <执行的次数> api name: 断言的2种写法 request: url: https://www.baidu.com/ method: GET headers: User-Agen 阅读全文
posted @ 2021-06-04 10:42 莫使娇躯空对月 阅读(314) 评论(0) 推荐(0)
摘要:既然 HttpRunner 是对 requests 模块的封装,那我们就试图从 requests 中寻找答案,在其官网中发现了对重定向的描述和处理: 地址:http://cn.python-requests.org/zh_CN/latest/user/quickstart.html#id9 提到: 阅读全文
posted @ 2021-06-04 10:41 莫使娇躯空对月 阅读(220) 评论(0) 推荐(0)
摘要:对于名称不固定的sessionid可以先获取头域中的Set-Cookie值,然后再将Set-Cookie值,在下个接口中headers以cookies的方式传入 具体实现 httprunnermanager_login.yml name: httprunnermanager_login api # 阅读全文
posted @ 2021-06-04 10:40 莫使娇躯空对月 阅读(108) 评论(0) 推荐(0)
摘要:SessionID 存在于临时 cookie 中,HttpRunner 可以从cookie中直接提取需要的值,而且要求 cookie 的键名称必须是固定不变的, 提取方式为: extract: - 变量名称: cookies.键名称 案例 httprunnermanager平台登录接口 通过抓包得知 阅读全文
posted @ 2021-06-04 10:31 莫使娇躯空对月 阅读(104) 评论(0) 推荐(0)
摘要:HttpRunner:关于 SessionID 问题 HTTP 是一个无状态的协议,每次请求之后不会留下任何痕迹。就像是有一个失忆的家伙,从来记不住是谁到过他家里,客人必须每来一次都重新告诉他姓名。如果碰到这么一个傻服务器,这就麻烦了,每访问一个页面都要重新输入一次用户名和密码,这肯定要让人崩溃的。 阅读全文
posted @ 2021-06-04 10:29 莫使娇躯空对月 阅读(117) 评论(0) 推荐(0)
摘要:HttpRunner断言:可断言的响应属性 通过 response.py 源码文件的错误提示信息中,我们可以看到进行断言时可以涉及到哪些响应的属性。 httprunner-2.5.5\httprunner\response.py 我们从以下几个角度看看断言编写的例子 headers elapsed 阅读全文
posted @ 2021-06-04 10:28 莫使娇躯空对月 阅读(499) 评论(0) 推荐(0)
摘要:断言类型 在 comparators.py 文件中,定义了可以使用的断言类型: equals: 是否相等 less_than: 小于 less_than_or_equals: 小于等于 greater_than: 大于 greater_than_or_equals: 大于等于 not_equals: 阅读全文
posted @ 2021-06-04 10:24 莫使娇躯空对月 阅读(1451) 评论(0) 推荐(0)
摘要:一个完整的测试用例中应该包括“预期结果”和“实际结果”字段,而二者内容是否一致,是判断测试用例是否执行通过的标准。在自动化测试中,这个判断过程是由“断言(Assert)”来实现的。HttpRunner 框架中提供了多种类型的断言以供使用。 在 HttpRuner 框架源码中主要有三个文件涉及断言相关 阅读全文
posted @ 2021-06-04 10:23 莫使娇躯空对月 阅读(300) 评论(0) 推荐(0)
摘要:原文链接:https://blog.csdn.net/weixin_42007999/article/details/105718994 在 HttpRunner 中提取数据时,根据界定符的方式进行提取,涉及到的内容包括如下: ["status_code", "encoding", "ok", "r 阅读全文
posted @ 2021-06-04 10:22 莫使娇躯空对月 阅读(209) 评论(0) 推荐(0)
摘要:原文链接:https://blog.csdn.net/weixin_42007999/article/details/105718900 在 HttpRunner 中提取数据时,根据界定符的方式进行提取,涉及到的内容包括如下: ["status_code", "encoding", "ok", "r 阅读全文
posted @ 2021-06-04 10:20 莫使娇躯空对月 阅读(356) 评论(0) 推荐(0)
摘要:原文链接:https://blog.csdn.net/weixin_42007999/article/details/105718754 在 HttpRunner 中提取数据时,根据界定符的方式进行提取,涉及到的内容包括如下: ["status_code", "encoding", "ok", "r 阅读全文
posted @ 2021-06-04 10:16 莫使娇躯空对月 阅读(244) 评论(0) 推荐(0)
摘要:转载链接:https://blog.csdn.net/weixin_42007999/article/details/105718609 在 HttpRunner 中提取数据时,根据界定符的方式进行提取,涉及到的内容包括如下: ["status_code", "encoding", "ok", "r 阅读全文
posted @ 2021-06-04 10:15 莫使娇躯空对月 阅读(165) 评论(0) 推荐(0)
摘要:在 HttpRunner 中提取数据时,根据界定符的方式进行提取,涉及到的内容包括如下: ["status_code", "encoding", "ok", "reason", "url"]cookieselapsedheaders["content", "text", "json"] 从源码角度分 阅读全文
posted @ 2021-06-04 10:03 莫使娇躯空对月 阅读(261) 评论(0) 推荐(0)
摘要:在 httprunner 中可以通过界定符的连接方式提取指定的内容。界定符起到了连接的作用,类似路径的表达方式,一般作用域逐渐降低, 无论JSON格式还是HTML文件,都有类似的嵌套结构存在,这就为界定符提供了用武之地。 \httprunner-2.5.5\httprunner\response.p 阅读全文
posted @ 2021-06-04 10:01 莫使娇躯空对月 阅读(90) 评论(0) 推荐(0)
摘要:在 httprunner 中可以通过正则表达式进行文本内容的提取: 从响应的实体中进行正则提取 响应的实体必须是“JSON”或者“HTML文本”类型 格式为: <左边界>(提取内容的正则表达式)<右边界> 常用提取的正则: (.*) 代表边界里面可以是“任意字符出现任意次数” 示例 api文件 na 阅读全文
posted @ 2021-06-04 10:00 莫使娇躯空对月 阅读(174) 评论(0) 推荐(0)
摘要:在接口测试中,除了对单个接口进行测试,还经常涉及多个接口进行联合测试,接口会被复用。为了更好地对接口描述进行管理,HttpRunner 可以使用独立的 JSON/YAML 文件对接口描述进行存储,即每个文件对应一个接口描述。另外,官方建议 API 描述需要尽量保持完整,做到可以单独运行 每个 api 阅读全文
posted @ 2021-06-04 09:58 莫使娇躯空对月 阅读(210) 评论(0) 推荐(0)
摘要:在 HttpRunner 的接口文件和测试用例文件中,都可以实现对接口的请求操作。在请求中有哪些关键字可以使用 该请求中可以使用的关键字与 requests.request 中的要求是一致的 requests 官网地址:http://cn.python-requests.org/zh_CN/late 阅读全文
posted @ 2021-06-04 09:55 莫使娇躯空对月 阅读(140) 评论(0) 推荐(0)
摘要:1、什么是HttpRunner? HttpRunner 是一款面向 HTTP(S) 协议的通用测试框架,只需编写维护一份 YAML/JSON 脚本,即可实现自动化测试、性能测试、线上监控、持续集成等多种测试需求。 2、安装HttpRunner # 安装稳定版本 pip install httprun 阅读全文
posted @ 2021-06-04 09:51 莫使娇躯空对月 阅读(186) 评论(0) 推荐(0)