1. 前言 本篇是第一系列(Http接口自动化)的第五课程,如果对系列课程大纲不清楚的,可以查看<RobotFramework系列免费课程-开课了~>. 前面我们介绍了,在真正实施前,需先定好多人协作过程中约定的接口用例规范,以及开始时,接口项目如何结构化分层,那么今天,我们来聊聊,用RobotFramework如何编写接口用例及如何对用例断言. 2. 开始前的准备 在写接口用例前,除了前面几节介绍的接口框架环境准备.接口用例规范的制定.项目分层这几点外,在真正开始写用 例之前,还有一环节是必…
如何使用Robot Framework编写优秀的测试用例 概述 命名 测试套件命名 测试用例命名 关键字命名 setup和teardown的命名 文档 测试套件文档 测试用例文档 用户关键字文档 测试套件结构 测试用例结构 工作流测试 数据驱动测试 用户关键字 变量 变量的命名 传参和返回值 避免使用Sleep关键字 我们AT中的一些约定 概述 这篇文档是使用Robot Framework编写好的测试用例的高级纲要,至于如何实际和被测系统(SUT)交互超出了本文档的范围. 最重要的大纲是使得测试…
最近发现做接口测试的朋友越来越多了,打算写一个系列的rf+requests做接口测试(主要是Http接口)的文档,可以帮助新入门的同学对接口测试有个大概的了解,同时也是敦促自己做总结的一种手段.希望经验丰富的大神路过时,如发现我文档中的不足,提出中肯的批评及更好的解决思路.以期共同进步. 一.环境准备 1)默认已经安装robotframework2)默认已经安装requests库3)默认已经安装并成功导入RequestsLibrary4)会用抓包工具,fiddler或Charles都可 用这个库…
凡是涉及一点点有接口关联的,都可能下一个接口需要上一个接口的某个返回值作为入参,最直接的例子,就是登录依赖.用接口做业务性的测试,也绝对离不开接口依赖的,业务都是一系列接口串联的结果,有时候一个接口操作的结果,也需另外的接口验证,举几个例子,以某个文章的评论用例为例,我们选取几个评论的冒烟用例来看看吧. 拉取评论列表(list接口) 增加一条评论(add接口) 将评论置顶及取消置顶(stick接口) 删除评论(delete接口) 用例1很简单,仅是个数据读接口没有做写操作,做一些基本的响应校验就…
一般情况下响应断言就能解决很多问题,但是返回复杂的json时就需要用到beanshell断言. 举个例子 免费的接口API www.sojson.com/api/beian/sojson.com host:    www.sojson.com source:   api/beian/sojson.com (api/beian后面只能跟一级域名如:baidu.com或者sojson.com) 创建好线程组HTTP请求,给该请求加beanshell断言,代码如下,其中必须加prev.setSucce…
用自己建立的小网页来做接口测试,在Django的tests.py写下如下 test_login_page为用get方式登录login路径,根据回复验证是否查看到页面 test_login_action_success为添加用户的用户名密码,用post方式模拟登录,访问page页面,并校验是否成功 运行结果显示这俩个小用例运行成功,校验正确…
接口签名是我做接口测试撞到的第一块石头,刚到新公司,本来想默默憋出来一个大招,然后碰到了签名接口,直接给跪了.于是只好找开发哥哥帮忙,把签名算法的java文件拿到,一行行对着用python实现了一遍.大致的心路历程就是这样了,签名其实没什么好讲的,每个公司实现都不一样,java代码转成python代码也要点时间,传参类型和格式一定要对,调试的时候有人帮忙会快很多. 写这篇文章的目的之一,是粗略介绍一下自定义关键字的写法.另一目的是给有接口签名的小伙伴提供一些思路,不至于被一个老是变的字段吓到不敢…
调用登录接口登录了,其他的接口怎么保持登录状态呢?  首先来看一看,web端或者说客户端是怎么样用cookie/token等保持登录状态的.一般来说,cookie都会在登录接口由服务端返回,而且会是在header里面返回,并且,header里面有一个set-cookie这样的key,是的,就是这家伙,会把登录的cookie写到客户端的cookie缓存里,而后,当客户端要请求指向这个path的其它接口时,将此缓存的cookie塞到请求里面请求,服务端认得这个cookie,即认为后面的接口为已登录状…
初使用RequestsLibrary做接口测试时,你会不会感到困惑,为什么会有${resp.content}, ${resp.status_code}这样的写法,这个status_code什么鬼,f5查的时候怎么没说明这个东西,为什么写Demo的人知道可以这么写,我少写个’_’可不可以,还有其它啥高端玩法是我不知道的,这玩意的使用说明到底保存在哪啊喂!说到这个,我们先来了解一下,返回的${resp}是个什么类型的对象,在rf上用个巧妙的方法查看: 运行这段脚本,第4行的打印结果是:INFO :…
** Test Cases *** Test With Settings [Documentation] Another dummy test # 用于指定测试用例文档 [Tags] dummy owner-johnoe # 用于指定测试用例标签 [Template] # 用于指定测试模板,测试用例本身将只包含数据,每行数据都是传递给该关键字的参数,最终实现数据驱动测试 log Hello,world Valid Longin Open Login Page Input Username Inp…