文章目录
前言
目前,接口自动化无论是使用pytest框架或Jmeter进行自动化测试,都有一定的局限性,前者需要有一定的代码基础,并且维护的测试数据比较麻烦,交接不方便和维护需要大量的成本和人力,后者操作比较简单,但共享性,操作性和维护性不太好。对此,本人花费了2年时间开发出一个接口自动化平台去解决一些自动化的缺陷问题,提高整个公司的质量和效率保证。
一、简介
1.技术
- 后端:django+mysql+redis+celery+…
- 前端:vue+element+…
二、功能介绍
1.登录页面
- 登录页面显示账号和密码,输入正确的账号和密码点击登录就可以登录成功跳转到首页,页面显示如下:
2.首页
- 首页显示的是近7天的巡检运行数据结果(不足:1.显示的数据没有细分,后期会对每个项目的巡检的数据进行细分统计【只统计7天】,还有项目里的场景和用例数据等)
-
3.项目配置
- 项目配置页面可以对项目进行过滤搜索并添加/更新/删除操作,并且还有查看功能,复制功能和启动功能,
- 查看功能可以查看该项目最近一次巡检结果
- 复制功能可以把项目的场景和用例进行复制一份出来,方便测试人员写好bate环境用例后,只需要把bate环境用例复制一下改一下线上环境参数既可在线上环境使用
- 启动功能点击启动可以运行该项目里的用例
- 项目配置主要用来区分一个部门里每个项目的测试用例
4.场景配置
1.场景配置功能比较强大,但也存在一些不足点,不足点在文章最后的总结里说一下,这里先介绍场景功能,场景功能包含(
- List item搜索过滤场景
- 添加/更新/删除/复制场景功能
- 场景里可以上行排序用例顺序
- 场景里可以复制其他项目组里的http和py脚本用例
- 可以添加tcp,webscoket,udp,http,python脚本
- 可以删除添加的用例
- 有循环操作的场景配置
- 场景用例运行功能
- 场景和用例开启或关闭功能)
5.API测试
1.API测试应该算比较强大完美的一个功能,该功能经过3次大改才有今天的强大,并且使用起可以与postman的单接口测试60%的接近感,为什么说使用非常接近postman呢!这里就给大家介绍一下强大之处如下:
- 存在参数化配置,只需要上传一份参数化xls文件上,根据系统设定的取值去配置每一个输入框里,就可以一条用例运行多种异常操作(如:登录成功,登录失败,无账号/密码登录的例子),减少测试人员写重复的用例,减少浪费的时间
- 输入框和postman一样,输入的值很长,输入框会随值的长度而变高,方便用户阅读,
- 支持取变量值(如:一些变量会经常会更改的,如用户id,我们可以把用户id与用例分开,把用户id存储到变量配置里,这样当我们想运行其他用户的操作,可以不需要在用例里更改数据,可以在变量配置更改,方便测试人员更改可变数据)
- 取接口存储值(这里介绍什么是接口存储值,如:B用例运行需要A用例的某一个返回值,我们可以把A的值存储下来,让B用例去调,这个就是取接口存储值功能)
- 变量提取功能,可以对面headers,params,form-data,x-www-form-urlencoded,json,接口返回值进行存储(如:B接口需要A接口的headers里的date值,我们可以使用变量提取功能提取header里的date值,让B接口进行调用)
- header,params,form-data,x-www-form-urlencoded支持BULK EDIT功能编辑(该功能和postman的BULK EDIT功能一样,方便测试写用例,加快写用例速度,不需要一个一个的填写测试,减慢测试人员效率)
- raw功能的json,html等输入界面与postman的一致,方便测试人员查看和搜索等
- 返回结果分两种返回结果,一种参数化,一种无参数化的,无参数化的返回结果显示与postman的返回结果显示50%相似,方便测试人员和开发人员查看结果,参数化的返回结果会显示1一个列表并且列表里也包含结果
- 断言支持状态码断言,返回值断言,并且断言功能比较强大,可以对长度,响应时间等进行断言
- 设置功能可以设置接口请求的等待时间和用例状态的开启与关闭
- 授权支持一些常规的授权功能
- 代码生成支支持curl代码生成功能(因为本人比较懒,不想写python,go等代码生成的模板)
- 变量查看
- 关联host,就是让用例去关联所配置的host(如:baidu.com的bate环境ip:10.15.89.99,线上环境是:10.12.238.99.那么如果下baidu.com在bate环境运行,可以让该用例关联bate环境的host就可以,host是在host配置功能里设置)
- 历史记录,可以查看该用例一天的历史记录结果
- 证书功能暂未开发(大概明年完成)
- 可以添加python脚本,为了解决一些平台做不到的功能可以用python脚本完成,如:一些公司需要运行socket的sdk,可以使用python脚本去编写socket的sdk进行模拟客户端上行或下行等操作的用例,或一些公司的签名,运行完成会自动打印日志,打印的日志可以做断言操作(日志打印需要在python脚本用print显示)
6.变量配置
1.变量配置可以过滤存储的变量值,也可以存储到内存,方便python脚本从内存取变量进行变量配置,可以增加/更新/删除的操作,配置完成,可以让http,socket,python脚本调用
7.环境配置
1.可以搜索过滤配置好的环境,添加/更新/删除已配置的环境,功能使用(可以配置bate环境里所有的host,给http,socket用例调用,暂不支持python脚本,因为python脚本可以使用代码进行配置host也可以)
8.MYSQL配置和SQL命令配置
1.mysql配置可以配置连接的mysql的数据库名称,配置成功,在sql命令配置页面里关联已配置好的mysql数据库,然后对该库的任意一个表进行查询,查询的数据给http用例进行调用(如:预防一些验证等操作需要在数据库取)
9.redis配置
1.redis配置页面支持配置项过滤,添加/更新/删除操作,该功能为了解决一些接口需要取的数据是在redis里,如:验证码等,可以通过该配置连接redis进行查询读取该数据让http用例使用调用(配置好后,可以在写http用例使用系统的取值规则配置就可以)
10.邮箱配置
1.邮箱配置是设置运行的项目进行关联,当该项目运行完成后进行发送用例结果给该配置的邮箱,(运行失败发送或运行完成发送的设置都可以配置),项目运行成功会自动读取项目的用例数据生成html样式的表格进行发送的
11.消息推送
1.消息推送支持钉钉,企业微信的群里机器人,当该消息推送配置关联A项目,A项目运行完成会在企业微信或钉钉进行发送消息,项目运行成功或失败才发送该配置可以设置
12.定时任务
1.定时任务可以配置对某一个项目进行定时操作,定时操作可对每周星期几进行运行,或那一年某一个时间段运行,还有每小时每分钟每秒的定时运行项目
13.测试报告
1.测试报告显示某每一个项目运行或定时运行或场景运行的结果,并且会显示非常细的数据,方便开发和测试定位问题,显示的结果与postman的返回结果差不多,方便用户查询阅读等
14.API文档
1.api文档就是为了开发编写一些接口的文档,方便交接和测试使用,还有其他部门交流的时候使用,如果文档难于遇到,这会导致交接等都会浪费很多时间,这里就大概把api文档的样式给大家看看,后续会慢慢介绍该api文档的功能
缺点
- 该平台的首页的数据需要细分显示,后期完成(大概明年年中)
- 该平台的场景功能不完美,有点难使用,预计大改需要3个月时间
- 该平台缺小团队管理功能和系统操作日志功能(需要后期增加)
- 报告功能缺少一键删除报告功能
- 缺少微信和电话推送功能(后期增加)
- 需要增加app报告功能
- 缺少报告模板选择功能
优点
- 基本符合任何一家公司的自动化测试
- 减少公司用人成本
- 解决自动化维护难,成本高,交接难问题
- 提高公司QA的效率和产品的质量
- 对线上环境的产品健康监控起到很大的作用
- 方便测试人员使用等