IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> Robot Framework 接口自动化测试 --- 从入门到架构设计 -> 正文阅读

[Python知识库]Robot Framework 接口自动化测试 --- 从入门到架构设计

本文概要:

废话不多说,本文将包括以下内容:

1. 如何使用Robot Framework+RequestsLibrary发起最简单的http接口自动化?。

2. 如何不使用数据驱动的方式编写接口自动化用例,如何封装合适的关键字。

3. 如何使用数据驱动的方式编写自动化用例,各个数据源有哪些优缺点,数据的组装方式有哪些。

4. 断言如何封装才能做到框架编写者和框架使用者在难易度上的平衡。

5.?调用链自动化和单接口自动化分别适合怎样设计架构,如何做到事后分析更方便。

6. 怎么有效的利用Jenkins更合理的执行自动化。

7. 如何支持除了http接口外的其它接口类型,比如TCP,Websocket,CAN等等。

第一章:最简单,最基本的post请求

鉴于可能有朋友没有安装过Robot,我这里给一个简单的安装:

Robot安装:

首先安装python,最近版的或者次新版的都可以,目前建议3.8版本即可

其次分别在管理员权限的cmd下通过命令行分别执行以下命令,升级/安装对应的库:

python -m pip install --upgrade pip -i https://pypi.tuna.tsinghua.edu.cn/simple

pip install robotframework==3.1.2 -i https://pypi.tuna.tsinghua.edu.cn/simple

pip install robotframework-ride -i https://pypi.tuna.tsinghua.edu.cn/simple

pip install robotframework-requests -i https://pypi.tuna.tsinghua.edu.cn/simple

pip install robotframework-pabot -i https://pypi.tuna.tsinghua.edu.cn/simple

pip install robotframework-databaselibrary -i https://pypi.tuna.tsinghua.edu.cn/simple

pip install pymysql -i https://pypi.tuna.tsinghua.edu.cn/simple

pip install cx_oracle -i https://pypi.tuna.tsinghua.edu.cn/simple

都安装完了建议重启下电脑。

创建测试套,测试用例,引入Requests库:

在windows的“运行”中输入ride.py打开ride编辑器。

新建测试套:

测试套中引入RequestsLibrary:

这里注意大小写:

如果引入正确就是黑色的,如果是红色,说明引入有问题,需要去tools--view ride log去看原因:

?在测试套上创建测试用例:

?至此,准备工作已经完成。

创建session:

Ride下打开F5,选择RequestsLibrary,我们先看看如何创建一个Session:

?我们主要看一下支持的参数:(参数和requests基本一致)

alias? 用于识别会话的 Robot Framework 别名,简单说就是你给会话起了个名字

url?服务器的网址,会话这里一般包含请求地址和(端口号)即可

headers?默认请求,格式是字典,如果需要填写一般要填写请求类型

cookies?cookie,格式是字典,如果需要就添加

auth? ?HTTP 身份验证的用户名和密码,格式是列表(即[用户名, 密码]即可)

timeout? ?连接超时时间

proxies?映射协议或协议和主机到代理的 URL,格式是字典(例如 {'http':'foo.bar:3128','?http?://host.name':'foo.bar:4012'})

verify?是否验证 SSL 证书,如果需要,还要配置SSL证书路径

debug?启用会打印更多的信息

max_retries?每个连接应尝试的最大重试次数。默认情况下,它只会在连接错误的情况下重试 3次。如果设置为0,则不会重试。超过重试次数未连接成功,会抛出异常

disable_warnings? ?关闭请求的警告,建议打开

backoff_factor?在每次重试后引入更长的重试之间的延迟时间。例如。如果 backoff_factor 设置为 0.1,则尝试之间的睡眠时间将为:0.0、0.2、0.4,用来增加重试的成功率

retry_method_list?允许重试的大写 HTTP 方法列表。默认情况下,仅允许对被认为是幂等的 HTTP 请求方法进行重试(具有相同参数的多个请求以相同状态结束)。例如。设置为 ['POST', 'GET'] 以仅重试POST和GET类型的请求

retry_status_list?整数 HTTP 状态代码列表,如果返回,则尝试重试。例如。设置为 [502, 503] 以在返回这些状态时重试请求。max_retries 必须大于 0时才能使用此功能

其实写了这么多,只有别名和请求地址是必填的,根据需求填写

比如以下这个会话的建立,我们就只需要填写最基本的信息:

如何理解这个Session呢?其实,它提供了三个功能:

1. 为后面的请求提供了“容器”,之后多个请求都可以在这一个会话中发起

2. 保持状态,比如你创建了会话后,在会话上发起了login的接口请求并成功,后面所有在这个会话上的请求都是“已登录”状态的请求

3. 在会话中设置的headers或者cookies信息,在每次请求时都会使用,起到了“默认值”的效果

在已经创建的session上进行post请求:

同样的,我们先看看如何创建一个post请求:

创建post请求有两种,一种是直接请求,比如下面这种:

?一种是在Session上进行请求:

?这两个区别,打个比方,就像:

POST --- 用手捧水喝 (一次性)

Post on Session --- 用瓶子装水喝 (重复使用)

前者一般用于依赖请求的发起(比如通过查询接口查信息),后者一般用于接口请求需要重复发起的情况

我们也看一下Post on Session支持的参数:

alias? ?Session对象的别名(就是你上面创建的会话的别名)

uri? ?POST请求的地址

data?格式是字典,将被 urlencoded 并作为 POST 数据或二进制数据发送,一般作为原始正文内容发送,或作为大部分表单数据传递,如果files也定义,文件描述符由 Get File For Streaming Upload 定义的路径进行检索

json? ?可以是字典或者json,其将被 json 编码并作为 POST 数据发送

params? ?要附加到 uri 的 url 参数(一般用不到)

headers? ?与请求一起使用的消息头,如果和Session的消息头的key重复了,会用新的value覆盖。如果是新增加的消息头内容,只在本次请求中生效

files? ?包含要 POST 到服务器的文件数据的文件名,格式是字典,需要Get File For Streaming Upload关键字配合

allow_redirects?布尔值。如果允许 POST/PUT/DELETE 重定向跟随,则设置为 True

timeout? ?连接超时时间

?

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2021-08-29 09:02:32  更:2021-08-29 09:02:56 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 12:23:21-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码