接口测试平台162:并发运行用例功能(1)

简介: 接口测试平台162:并发运行用例功能(1)

很抱歉,接口测试平台因为接到大量粉丝要求想听并发执行用例的功能,所以插播了本章节,所以之前准备开的导入导出接口功能延后了哈。


   其实刚开始听到有粉丝想听这个功能时我很诧异,因为这并不算什么复杂的功能,而且我应该讲过呀,很多平台内我都使用了并发功能呀.... 但是我回过头一想,不对.... 目前用到并发功能的平台 我还没来得及更新到公众号....只是在我培训课程中存在。


   所以我赶紧打开接口测试平台,准备给弄进去....


   首先就是这个并发功能用在哪的问题。

   目前,接口测试平台有自己的用例库,其中可以生成多个大用例,每条用例都是完全分割开的,并且每条大用例内部都含有若干接口,也就是小步骤。


   这些小步骤是有上下文关联的,必须按照顺序执行,所以步骤之间不存在并发的问题。那么并发功能就只能放在多个大用例之间了。


   这里我们先想一个问题,就是很多同学总说自己看了多少书,多少博客,然后学了多少知识点,但是一遇到现实问题,就不知道如何下手了。其实,这也是我常说的:知识会背和会用,是存在一个鸿沟的。


       更文明点来说就是:这些零散的知识点,你没有串起来成一根线,以至于遇到问题,不知道该用哪个技术来解决,也不知道能不能解决,信心也没有,而是第一时间盲目的去搜,去问。


   所以我的文章为什么很多人喜欢读,为什么我的培训每期都爆满,就是因为,我讲的知识并不复杂,而更注重如何使用这些浅显的知识来解决实际问题。


   好,言归正传,经过我们上面的思路,我们知道了这个并发功能应该用于多个大用例之间。


   那么继续跟随我的思路走:

   

   这个并发功能底层用什么技术? 我想了想,用python的多线程比较好,也就是thread。


   那么怎么具体实现呢?更简单,并发的去请求本来就应该触发单独运行用例的那个url或者函数即可。


   那么多线程要怎么去调用执行用例的url呢?很简单,request请求即可。


   好,基于这个简单的思路,我们应该就可以实现这个功能了。这里扩展一下,如果是调用一些其他脚本,或者其他语言的脚本,最好用多线程调多进程驱动shell的方式,安全可靠,报错了也方便调试~不过本平台目前用不到这个设计,在我培训一期的ui自动化平台中,所有的脚本都是可拆卸组装的各种语言脚本,所以会用到这个设计。


  好,我们现在开始准备基础材料吧:


   首先是执行用例的url:

image.png


    好,在这个url中,我们并没有看到变量参数,也就是没看到运行大用例的具体用例id,不过!这是因为django的写法如此,实际上,这是一个get请求,而参数,是真实的在url中的,不信我们打开浏览器f12看看:

image.png

   


也就是说,我们只需要get请求拼接一下这个url,即可,然后并发函数来请求它。


那么这个具体的用例id,怎么获取呢?因为你点了并发,所以要执行当前项目用例库下所有用例,那么我直接从数据中拿出来这些用例的id即可。整个过程应该毫无难度就实现了。


但是现在还要思考一个问题,就是执行结果展示。既然要并发执行了,那么结果展示肯定是需要集成到一起的。不可能我一键全部执行后,要手动一个用例一个用例的点开报告看吧?


所以这里涉及到了一个隐藏需求,就是报告结果整合!


先看下我们当前的报告是什么东西?

image.png


这老人一眼就看出来了,这是httptestrunner的报告魔改的对吧?

那么这个报告有个特点,就是它并非存在于数据库中,而是实打实的一个html文档。

image.png


那么这就给我们合并报告提高了难度,如果是数据库中,那好办了。但是现在这样已经生成了html文档。那我们怎么合并呢?


也简单,直接按名字提取里面的关键信息:成功用例数,失败数,总数 即可。


那么怎么提取呢?因为这种报告一定是遵从一个初始文档的,所以它的html源码绝对是有规律可循的,也就是说,我可以用正则提取。


正则提取这种数据,就是玩~


提取出的数据,我们可以简单的相加或者放在一起展示。


最终结果数据就有了,那么问题又来了,要怎么显示在前端呢?


这...似乎又是一个难题。


这里我提出四个解决方案。


并非只能用其中一种,而是可以选择几种来用。如果我时间充足,会给大家全讲了。


方案一:在页面生成个按钮,一点就直接alert窗显示最终结果即可。


方案二:做个html,把所有数据展示到html里,这样算是永久存储可以导出。


方案三:也不用正则提取了,直接把所有的html报告内的关键信息dom层,全部粘贴复制到其中一个里,这样生成的报告更细致。


方案四:启动邮件/钉钉/飞书 机器人功能。直接用机器人通知你执行结束并展示结果。


好了,不论选哪种,实现起来难度都不高,所以这个问题跳过。


那么这个并发功能算完了么?当然没有!


性能上也要考虑一个严峻的问题,就是如果用例特别多,那么并发执行就像什么了?


对,像压测!


也就是说,这个接口测试平台要承担压测的水准才行,可实际上,我们一开始造平台的时候并没有策划这个范围,而且服务器也不一定能扛得住!所以我们要做一个保险功能,什么功能?


具体功能,请听下回分解!

相关文章
|
20天前
|
人工智能 搜索推荐 Serverless
使用金庸的著作,来测试阿里通义千问最新开放的长文档处理功能
使用金庸的著作,来测试阿里通义千问最新开放的长文档处理功能
44 7
使用金庸的著作,来测试阿里通义千问最新开放的长文档处理功能
|
1月前
|
Java
【Java每日一题】— —第二十一题:编程把现实生活的手机事物映射成一个标准类Phone,并定义一个测试类PhoneDemo测试Phone类的功能
【Java每日一题】— —第二十一题:编程把现实生活的手机事物映射成一个标准类Phone,并定义一个测试类PhoneDemo测试Phone类的功能
36 0
|
1月前
|
缓存 运维 Serverless
应用研发平台EMAS产品常见问题之测试检查更新没有反应如何解决
应用研发平台EMAS(Enterprise Mobile Application Service)是阿里云提供的一个全栈移动应用开发平台,集成了应用开发、测试、部署、监控和运营服务;本合集旨在总结EMAS产品在应用开发和运维过程中的常见问题及解决方案,助力开发者和企业高效解决技术难题,加速移动应用的上线和稳定运行。
|
1月前
|
机器学习/深度学习 人工智能 监控
视觉智能平台常见问题之体验产品的美颜测试关掉如何解决
视觉智能平台是利用机器学习和图像处理技术,提供图像识别、视频分析等智能视觉服务的平台;本合集针对该平台在使用中遇到的常见问题进行了收集和解答,以帮助开发者和企业用户在整合和部署视觉智能解决方案时,能够更快地定位问题并找到有效的解决策略。
23 1
|
2月前
|
人工智能 安全
外汇MT5/MT4交易所平台系统开发测试版/案例设计/策略步骤/功能需求/源码程序
When developing the MT5/MT4 foreign exchange documentary trading system, the following functions and intelligence can also be considered:
|
2月前
|
测试技术
Lim测试平台测试报告说明
Lim测试平台测试报告说明
32 2
|
2月前
|
SQL 测试技术 数据库连接
Lim接口测试平台-接口测试功能详解
Lim接口测试平台-接口测试功能详解
40 1
|
14天前
|
测试技术 C语言
网站压力测试工具Siege图文详解
网站压力测试工具Siege图文详解
21 0
|
1月前
|
JavaScript jenkins 测试技术
这10款性能测试工具,收藏起来,测试人的工具箱!
这10款性能测试工具,收藏起来,测试人的工具箱!
|
1月前
|
测试技术
现代软件测试中的自动化工具与挑战
传统软件测试面临着越来越复杂的系统架构和不断增长的测试需求,自动化测试工具应运而生。本文将探讨现代软件测试中自动化工具的应用和挑战,深入分析其优势与局限性,为软件测试领域的发展提供思路和启示。