Robot Framework接口测试(1)
RF是做接口测试的一个非常方便的工具,我们只需要写好发送报文的脚本,就可以灵活的对接口进行测试。
做接口测试我们需要做如下工作:
1、拼接发送的报文
2、发送请求的方法
3、对结果进行判断
我们先按步骤实现,再进行RF操作的优化。
现在就让我们来完成一个拼接发送报文的方法,这个方法也是小编和同事聊天时无意聊到的,很巧,不知道各位想到没有,反正小编没想到^_^,话不多说,先上代码:
#coding: utf-8
import json
class JsonModify(object):
def __init__(self):
pass
def post_info(self, *parameters):
jsonStr = {}
strDict = 'jsonStr'
for parameter in parameters:
# print(strDict + parameter)
try:
exec(strDict + parameter)
except:
print 'Expression execute failed![',strDict + parameter,']'
raise
return json.dumps(jsonStr)
现在我们来分析一下上面的代码:
首先我们定义了一个post_info函数,参数传的 *parameters可变参数,也就是说我们在传参的时候可以传任意多个参数。
1、我们先定义了一个空的字典jsonStr
2、注意,接下来的操作很有意思,就是这里做了一步“很无聊”的赋值操作——把字典名字作为字符串传给了一个变量:strDict = ‘jsonStr’
3、接下来,我们遍历可变参数(列表),try except属于Python异常处理的知识,很容易,大家可以自己看一下。
exec译为“执行文本中的Python语句”,也就是说其实我们对传参是有要求的,我们要执行 ‘strDict + parameter’ 这个Python语句,如果无法执行,则走except语句:打印原因并报错(raise)
4、最后利用json库中的dumps方法把字典转换为字符串(字符串转字典为loads)并返回。
接下来是以前讲过的,先在robot Library中导入类名JsonModify,然后在测试用例中直接调用函数,函数在调用时下划线其实是可以不写或者用空格代替的
注意我们的传参,注意我们的传参,注意我们的传参
发现参数的特别之处了吗?没错,我们是按着字典的key-value形式传的,这时执行的就是jsonStr['sign']='sign'
这种方法的好处就是以后在拼接报文的时候只要按着这种格式传参,就直接拼好了一个json。但是这种方法也有它的不足,就是如果传10个参数还无所谓,如果传100个参数……没错,只能写100个这个东西^_^而且只能是一层的json像是下图这种,如果在字典里还要嵌套字典或者列表,这种方法也是不可用的。但是优化也很方便,就是可以先读一个含有发送报文的文本。
运行得到:
现在我们就完成了拼接发送报文的工作。
微信公众号搜索“自动化测试实战”或扫描下方二维码添加关注~~~

Robot Framework接口测试(1)的更多相关文章
- robot framework 接口测试 http协议post请求json格式
robot framework 接口测试 http协议post请求json格式 讲解一个基础版本.注意区分url地址和uri地址. rf和jmeter在添加服务器地址也就是ip地址的时候,只能url地 ...
- Robot Framework接口测试(4)
现在我们已经做好了进行接口测试的必要准备:1.拼接发送的报文:2.发送报文的方法.现在我们实现RF上的接口测试. 我们先对发送的方法进行一下封装: 1.拼接报文方法: #coding : utf-8 ...
- Robot Framework接口测试(3)--http请求之post
http请求更多的是post请求,我们可以:查看说明:很多网站在登录的时候需要加上头部信息即headers,这个信息可以通过抓包工具获得——fiddler,一个轻量级的抓包工具,大神用了都说好~这里模 ...
- Robot Framework接口测试(2)--http请求之get
本来打算把http发送请求的get和post方法都介绍一下的,结果发现篇幅有点长,文本编辑也变得混乱,所以这里先介绍一下get方法,下一次再post.其实这些方法大家可以看一下源码里面的介绍只需要在代 ...
- robot framework接口测试之一-完整的测试用例
*** Settings *** Library Collections Library json Library requests Library RequestsLibrary Library H ...
- 使用Robot Framework做接口测试
http://chuansong.me/n/1858477 1.RF框架 1.1 RF框架介绍Robot Framework 框架是一个通用的测试框架,一直是由诺西网络(Nokia Siemens N ...
- 【Robot Framework 项目实战 01】使用 RequestsLibrary 进行接口测试
写在前面 本文我们一起来学习如何使用Robot Framework 的RequestsLibrary库,涉及POST.GET接口测试,RF用例分层封装设计等内容. 接口 接口测试是我们最常见的测试类型 ...
- 基于RFS(robot framework selenium)框架模拟POST/GET请求执行自动化接口测试
打开RIDE添加测试用例 如: Settings Library Collections Library RequestsLibrary Test Cases ...
- 在centos7中安装Robot Framework
安装前景介绍: 最初,我们是在Windows环境下搭建Robot Framework来对我们的服务进行接口测试的(想知道如何在Windows下安装Robot Framework,可以参考我同事的博客h ...
随机推荐
- pt-osc原理
pt-osc原理 1.检查设置环境 测试db是否可连通,并且验证database是否存在 SET SESSION innodb_lock_wait_timeout=1 //InnoDB事务等待行锁的超 ...
- Hbase:简单介绍一下Hbase表的结构
HBase 是一个NoSQL数据库,用于处理海量数据,可以支持10亿行百万列的大表,下面我就和大家分享一下数据是如何存放在HBase表中的 为了更好的理解HBase表的思路,先回顾一下关系数据库中表的 ...
- 配置nginx,Tomcat日志记录请求耗时
由于公司的业务比较特殊,对速度比较在意,客户最近反应我们的平台时间比较久,处理一个请求十秒左右才返回,领导要求找出原因,我想让nginx日志记录请求处理用了多长时间,后端处理用了多长时间,总共用了多长 ...
- HTTP与抓包
HTTP就是超文本传输协议,底层使用socket TCP长连接,基于请求与响应,是同步请求. socket 绝对多数语言都是支持socket的,底层走的是二进制传输. HTTP协议实际上是对Socke ...
- Google maps api demo
demo: <!DOCTYPE html> <html> <head> <meta name="viewport" content=&qu ...
- DelayQueue与ProirityBlockingQueue
DelayQueue是一个无界队列,只有在延迟期满的时候,才可以取出元素.该队列的头部存储的延期期满了后保存时间最长的元素. DelayQueue阻塞队列在我们系统开发中也常常会用到,例如:缓存系统的 ...
- combox datagrid重复请求问题
html代码中利用class声明了datagrid,导致easyUI解析class代码的时候先解析class声明中的datagrid,这样组件就请求了一次url:然后又调用js初始化代码请求一次url ...
- JSP导入包
1. <%@page import="java.util.Date, mianBao.*, z_utils.*"%> 2. 3.
- phpstrom ctrl+s无法上传的问题 解决
首先这个不教你怎么配置同步FTP,这个教程网上太多了. 主要是配置好了上传,上传的好好的,突然某一天不能上传了,或者配置好了上传不了. 我遇到的问题是,如果你没有点击Use this server a ...
- spring3: 切面及通知实例 Aspectj的aop
1.前置通知 接口: package chapter1.server; public interface IHelloService { public void sayAdvisorBefore(St ...