自动化工具 Web 端测试工具的一点尝试

fdeferf · 2018年04月08日 · 最后由 AItestwork 回复于 2018年07月05日 · 2524 次阅读

在测试工作期间有一件很占据时间且很不必要的事情,就是造数据,来到现在这个团队后,为了解决这个需求,我们做了一点尝试,在这里分享一下。

Web 端的优势

Web 最大的一个优势就是不需要客户端主动更新,大家知道,测试工具有一个最重要的问题就是落地,最头疼的是做出来没人用,所以 Web 的形式可以很好的弥补这个问题。

举个创建直播的例子

这是一家教育公司,部门做在线教育,既然是在线就要上课,我们把每次上课归类为一个直播,测试当中需要频繁的创建符合要求的直播。

以前的流程是 登录后台—>创建直播—>关联直播到指定日期的课程中—>去另外一个平台关联讲义 (可选)

改造后的流程 登录 QA 测试工具网站—>创建直播并关联指定课程和讲义。

用一个表单去解决这些事情,其实就是重新做了一个前端出来,我们把一些主要的接口抽离出来,自己去实现这些功能,只保留一些必要的参数,比如名称、老师名、课程 id,其他的可以给一个默认值,比如日期默认当天,设定默认科目、年级、讲义。之前可能需要 3~10 分钟去做的一件事,现在输入几个数值,点几下鼠标就可以了,可以说极大的加快了测试的效率。而且不仅测试在用,包括技术支持、部分开发、其他业务部分也会使用到,如果在以前可能需要测试帮忙造数据,不仅慢,还很不情愿,现在只需要给他们开个帐号就可以了。

为了方便测试,我们也支持线上,不过做了严格限制,只有符合指定条件的才能够创建。

当然还有其他的一些功能,比如查询用户购买的课程、报名课程、查询直播信息等,以前这些可能需要手动操作或者查询数据库,现在使用表单就可以完成了。

界面:

给大家放一个 API 的使用量统计图

遇到的坑

在这当中有一个步骤是关联课程,关联课程的接口需要传入一个直播 id,也就是刚刚创建好的直播,可后端没有任何返回。

我的思路是到数据库查符合条件最新的那个,运行了一段,有同事反馈说有偶现 BUG——创建直播之后关联课程失败。一直无法复现,直到有一次服务不可用长达 1 分多钟,才发现了问题所在,是主从库延迟。运维给的是从库,而主从库有延迟,主库有数据,从库没有查到,并且我们不可能有访问主库的权限,后来我加了一个查库的轮询,每隔一个时间段就查一次数据,这下应该没什么问题了吧?后来发现有接口超时,轮询的时候接口本身就超时了。还想让开发改下代码,返回 ID,我看了下那段代码,已经有 3 年多了,写的挺烂的,我估计谁都不想碰,而且改了还得测吧。最后只得自己想办法,想到了一个方案,请求关联课程的 HTML 网页,再用一个正则,把直播讲 ID 取到,解决了,只不过是开发那段代码可以在主库上跑而已。

技术实现

目前主要使用 Django + Vue ,尽量做到前后端分离。

只是调用第三方的 API,所以这里用不到存储,主要是处理请求,写好功能函数,做好异常处理。

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
共收到 1 条回复 时间 点赞
仅楼主可见
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册