开始接触接口测试的时候,使用的jmeter,当时还是一个同事给分享了jmeter的基本操作功能。

后来研究接口自动化,想要利用jmeter来做这个,逐渐用上了数据库连接,前置,后置等略微高级一些的功能。

但jmeter在接口测试的过程中的方便是不言而喻的,但是总给人一种以呆板的感觉。

于是在接口自动化探索的道路上摸摸索索。

混迹testerhome开源版块也有不少的接口自动化开源项目,最有名的应该是httprunner,试了下不是我的菜。

还有其他几个开源平台也试用了下,个人感觉跟我的思想不是很契合。

直到利用pytest +allure 来做的时候,觉得还不错,但是要写代码,对有些同学来说门槛略高,如果想写代码搞接口自动化,强推pytest+allure。为啥我放弃了呢,因为在这个时候我发现了一个更好用的开源接口自动化平台sosotest。

安装,部署我就不说了,官方使用手册很清楚。

sosotest在testerhome上页面,官方群284333313 (我不是托) 我现在是sosotest的小迷妹了。

https://testerhome.com/opensource_projects/sosotest

碰到的一个坑:所有的服务部署在windows本机上貌似有点问题,部署到服务器上去之后就木有问题了 。

主要来说说,这个开源的平台是如何与我思想的契合,其实我也只发现了其冰山的一脚。

1.重要的断言

sosotest中叫断言恢复,为啥叫断言恢复呢?

因为这个断言中不仅仅可以写断言哦,还可以恢复。

啥叫恢复?

比如你的接口是添加某个数据,里面有个标题是‘aaaa’,且这个标题是不能重复的。那你在执行这个接口后,数据库里有了一条‘aaa’的数据,当你下次再执行这个接口的时候,就不能添加成功了。

恢复的妙用就是在这里。

有两种方法:

1.直接执行sql语句,将这条数据删除

2.执行与此添加接口相反的删除接口

以上两种方法都可以直接写到断言恢复中,相当于对此接口产生新数据的清理工作,这点在自动化测试中很有用。

如上图所示:在断言恢复中的几个步骤

1.断言

2.数据库查询(经测试貌似不支持连表查询)

3.通过json提取message_id,这个提取出来的值可以给下一个接口使用哦,后面讲准备的时候讲。这些方法在其平台上都有详细说明

4.执行清理接口

2.重要的准备

准备相当于jmeter里的前置条件,jmeter如果加前置可能会需要好几个步骤,这里也是几个步骤,但是操作十分方便。

准备中有很多事情可以操作。

比如执行接口,查询数据取值,引用组合文本,大可以发挥你的想象。

且在准备中执行的接口,如果该接口有断言恢复中有取出变量,那么在当前的接口可以直接使用这个变量哦,妥妥的好用。

值得一说便是这个组合文本。可以看到创建一个组合文本之后,他可以统一或单独设置不同环境的文本值。

划重点,这个很有用!如下面的两个图所示。

你可以将测试环境,线上环境单独设置文本值,然后在执行接口的时候,选择相应的环境,就可以使用相应环境的变量,这样做到数据,业务分离,同一套脚本只要选择不同的环境就可以分别执行相应环境的数据了。

亮点:

可以在你编写接口的时候直接调试,错误信息,返回啥的也非常详细,这点和jmter是差不多的,多了的内容就是选择环境,完全展示准备和断言恢复中的内容。

支持python模式和数据关键字模式。用起来贼溜。

对于那种一个接口多个用例的情况有以下两种思路:

1.写多个接口(反正可以复制)然后将这些接口添加到业务流中

2.用python实现,官方也有详细说明大致如下(抄官方代码)

写在准备里面,大致试验了下,下面是一个登录的接口。

# python
userlist = [{"account":"18668219620","pwd":"111111"},{"account":"18668219620","pwd":"1111123"}]
totalcount, passcount, failcount = 0,0,0
expected = '"errorCode":"0"'
for user in userlist:execute_current() # 执行当前接口的执行信息,使用变量user# 输出执行后的输入和输出信息log("processedHeader: %s" % context.processedHeader)log("processedUrl: %s" % context.processedUrl)log("processedParams: %s" % context.processedParams)log("processedBodyContent: %s" % context.processedBodyContent)retContent = const("RESP_TEXT")log("retContent: %s" % retContent)# 对返回结果进行判断。if expected in retContent:passcount += 1log("PASS")else:failcount += 1log("FAIL")# 开始设置测试结果,如果有失败则失败,否则全部成功。
if failcount > 0:set_result("FAIL","测试未通过,失败%d次。" % failcount)
else:set_result("PASS","测试通过.")

后续就是将你的接口脚本添加到业务流,再将业务流添加到任务,就可以美美的执行了,执行完了还有美美的报告。

这些就不细说了,使用手册里面都有。

开源接口自动化平台sosotest的使用心得相关推荐

  1. BAT都在使用的开源接口管理平台,你用了吗?

    作者:Anoyi 原文:https://www.jianshu.com/p/a97d2efb23c5 介绍 给大家推荐一个开源接口管理平台YApi,众多互联网大厂都在使用 YApi 的一些客户:百度, ...

  2. 搭建or部署接口自动化平台从零到一的过程

    接口自动化部署or搭建目录 前言 搭建 前端环境 后端环境 部署 部署环境 前端部署 后端部署 第一种方式后端部署 第二种方式后端部署 前言 首先感谢cheeath大佬的支持和帮助,自动化平台成功在服 ...

  3. Java 版本的开源 接口管理平台 eoLinker-AMS

    转自:https://blog.csdn.net/deronwilliam/article/details/79961598 https://my.oschina.net/u/3744110/blog ...

  4. 接口自动化平台(一):antd + antd pro 安装和简介

    目录 1. antd 1.1 进入ant.design官网做初步了解 1.2 安装antd 1.3 动手实际操作 2. ant design pro 2.1 antd pro介绍 2.2 antd p ...

  5. 第四:SpringBoot生成Api管理mysql内保存的测试数据(接口自动化平台扩展)

    本篇文章讲解的是通过api去管理mysql内存储的测试数据,使用的是SpringBoot框架,同样是使用java语句. 关于SpringBoot的环境搭建,在之前的文章内讲解过,本篇不做过多叙述,有疑 ...

  6. 测试自动化平台 | 测试开发工程师的进阶之路

    https://mp.weixin.qq.com/s/WU5h8FW6BT5YZtlsSuCIcw 「摘要」随着近几年国内IT行业高速发展,对测试工程师的要求也越来越高,其作用也越来越重要,但很多测试 ...

  7. apache ant 安装_Jmeter+ Ant+jenkins 接口自动化框架实现

    一.文件配置 •编写jmeter脚本 •上传jmx脚本到jmeter目录下,新建一个Loadtest目录, •在Tomcat webapp 文件夹下面新建报告输出文件夹testReport: •将jm ...

  8. 理想中的接口自动化项目

    如何评价接口自动化项目 我理想中的接口自动化项目,是有一套脚本,能够100%覆盖核心业务场景,能够回归线上频繁出现的问题,能够支持手工无法验证的场景,能够抛出偶现问题,能够包含容易遗漏的边界场景.异常 ...

  9. 如何在项目中搭建python接口自动化框架?

    文章目录 前言 一.框架目录介绍 1.common模块 读取Excel代码 读取yaml代码(支持场景关联) jsonpath断言封装代码 requests二次封装(get.post) configp ...

最新文章

  1. 《系统集成项目管理工程师》必背100个知识点-73配置管理和变更管理
  2. 耳朵经济在生活中的应用
  3. 2020江苏计算机二级考试官网,2020年秋季江苏省计算机等级考试报名通知
  4. C++/面试 - 四种类型转换(cast)的关键字 详解 及 代码
  5. 虹膜识别与虹膜定位(续)算法实现
  6. 【51nod】1776 路径计数
  7. UVA 10602 - Editor Nottoobad
  8. 【Codecs系列】AVS+(AVS1 P16)解码器
  9. 1.maya基本操作
  10. 对时间序列做分段相关性分析(matlab代码)
  11. cad图纸解析java_Java中的AutoCAD库可读取.dwg文件?
  12. 找出数组x中的最大值和该值所在的元素下标,数组元素从键盘输入。
  13. 程序读写时间内存 硬盘 cache 访问速度数级对比
  14. coco2d-html5制作弹弓射鸟第一部分---橡皮筋
  15. 太恐怖了 两天搞定一个项目 Java Web MVC 网络商城教程+源代码
  16. 共识协议(5)DPOS委托权益证明
  17. 微信公众号/订阅号开通留言功能
  18. 西门子 s7-1200和V90伺服3轴PTO
  19. explorer被微信企业版劫持一例
  20. 自然语言处理算法回归算法和分类算法

热门文章

  1. 灰度图Gray Scale Image 或是 Gray Scale Image
  2. opera 新手操作
  3. 连续卷积和离散卷积定义及积分计算
  4. 项目管理|如何制定项目进度计划?
  5. c语言 宏 不定参数,C宏定义不定参数
  6. 如何安装linux到非空硬盘_小白怎样将Linux装到移动硬盘中
  7. 已有oracle情况下重新安装oracle方法
  8. 五、医院决策支持系统
  9. 数据加解密基础知识介绍,及Java实现Base64加密(详细)
  10. 7-8 哈利·波特的考试 (25 分)