公司:360
360(全称“三六零安全科技股份有限公司”)(上交所:601360)是中国大陆的一家主营安全相关的互联网公司,由周鸿祎于2005年9月成立。公司口号是“引领中国互联网开放潮流”,旗下的产品有360安全卫士、360杀毒、360搜索、360安全浏览器、360手机助手、360手机卫士等多项业务。
自动化测试中对多断言的思考和实践
最近笔者在测试一个数据下载项目,测试过程中需要校验导出CSV文件中指标值的准确性。涉及指标数量400+,并且需要关注不同聚合层级、不同时间粒度指标计算的准确性。验证数据量大,手工验证效率低、人力成本高,因此通过自动化脚本的方式来提高测试效率以及方便回归验证。
在实现的过程中,最初采用unittest测试框架中内置的断言方法,进行数据的比对,实践发现内置断言并不能满足使用要求,进行了一系列的实践后,最终找到了合适的断言方案,本篇文章主要介绍了该方案的探索过程。
物联网测试数据构造实践
我们在测试过程中,经常遇到需要构造大量测试数据的业务需求,比如:统计和计费,我们需要统计近一个月甚至更长时间的测试数据来测试数据统计的变化趋势,统计值的准确性,这些数据有些需要通过数据库SQL生成,有些需要通过调用业务接口生成,有些需要通过kafka消费数据,有些需要借助平台、语言脚本、工具能力根据数据规则生成等等。
除了自己手动在数据库写入数据外,如果系统有暴露数据接口(通过接口可以构造产生大量的数据),我们优先通过调用数据接口去产生数据,这样不会产生大量的脏数量,也能保证数据的真实准确性。调用接口的好处是可以借助接口测试数据。可以根据数据构造的需求灵活使用接口调用工具,通过构造测试场景、定时器、数据构造脚本等方法,不需要手工输入大量的测试数据,就可以模拟用户使用来产生数据;
业务系统中,需要手工进行业务数据构造,可以将重复的操作步骤,制作成自动化脚本。
H5和微信小程序测试区别
H5和小程序的开发工具就非常不同,小程序都是依赖于微信客户端的,所以相对来说开发工具没有H5那么多;
而且两者的开发语言也都是不同的,微信小程序有自己的一套标签与样式语言,与标准的H5语言是不一样的;而且还独立了很多的原生app的组件,所以它在组件封装上面与H5也都是有所不同的。
因此,开发一个H5,需要从开发工具、前端框架、模块管理工具、任务管理工具,还有UI库选择、接口调用工具、浏览器兼容性等等,都需要考虑周到。尽管大多数开发者面对这些工具时,都有了自己的配置模板,但成本依然不低!
微信小程序的开发使用了改自js、CSS、HTML的语言,同时提供了各种自有的组件和API,是一套为微信量身打造的自定义的语法。因此,不用担心浏览器的兼容性,不用担心莫名其妙的bug,而且在微信中小程序的使用体验比普通H5更加顺畅、快捷。
数据下载重构项目测试总结
最近收到了一个数据下载重构的测试需求,数据指标大概有400多个,其中包含一些简单指标(数据库透传)以及复杂指标(需要计算的),测试过程需要我们将指标以csv的形式下载下来,逐一验证指标的准确性。本文将对数据下载重构项目测试过程中的测试计划和效率化方案展开介绍。
PageObject 模式框架设计浅谈
学习自动化设计框架的小伙伴稍微总结一下就会发现线性测试有大量的重复代码,新人上手学习成本高, 元素定位信息过于分散,概括为:开发成本、维护成本高。所以使用起来小项目还可以,大项目特别是测试人员需要共同维护一套的时候就比较吃力。
那我们以模块化驱动设计框架发现就会好很多,假如是简单的模块那我们就把重复代码独立成公共模块来设计。如果模块比较多,那我们以页面工厂模式PageFactory,也就是非常强大的 PO(PageObject)模式来设计,PageObject设计模式定义:将测试对象及单个的测试步骤封装在每个Page对象中,以page为单位进行管理。换句话说就是每个页面就是一个类,这个页面里面的元素定位信息是以类的属性存在,页面上的操作是以方法提供的 ,以页面为单位对用例进行管理和分层。
APScheduler 结合 Flask 在自动化测试中的应用
实际项目中,需要验证打点数据在各个系统中收集是否一致,而部分节点打点数据收集是通过异步任务实现的,等待时间比较久。为应对业务异步操作处理,实现异步数据的收集,经过调研后,选择了APScheduler框架。
Android UI自动化测试框架—SoloPi简介
软件测试是伴随着软件开发一同诞生的,随着软件规模大型化,结构复杂化,软件测试也从最初的简单“调试”,发展到当今的自动化测试。
自动化测试是什么呢?自动化测试是把以人为驱动的测试行为转化为机器执行的一种过程,自动化测试通常会借助某些工具或者框架。虽然不能完全取代手工测试,但相比手工测试来讲,自动化测试可以减少人力成本,降低重复工作,从而更快速、高效的进行测试活动。
测试金字塔是一种自动化测试过程的金字塔形策略结构,用来指导软件开发过程中各层测试投入的工作量比例,其最早由Mike Cohn在2009年的著作《Scrum敏捷软件开发》中提出。Mike Cohn在书中指出:测试金字塔从上到下分为三层,分别是UI测试、服务/接口测试、单元测试,越接近金字塔底部的测试活动,投入的工作量应该越多,即单元测试投入工作量最多,接口测试次之,UI测试投入最少。
基于Milvus快速实践以图搜图
图片检索在生活中应用广泛,常见的图片检索包括基于文本内容搜索和基于图片内容搜索。基于文本内容搜索图片是通过给图片打标签,然后通过搜索标签来实现对图片的搜索;而基于图片内容搜索即以图搜图,用户通过输入图片在海量的图片库中快速找到同款或者相似图片,这种搜索方式被广泛应用于电商、设计、媒体咨询、智能监控以及搜索引擎等热门领域。
本文基于Milvus和图片特征提取模型VGG,借助SQL快速搭建了一套以图搜图端到端解决方案,为本地化进行海量图片相似度量实施工作提供可能。
fastlane自动化打包iOS APP
APP自动化打包常见的主流工具有Jenkins、fastlane。Jenkins功能强大,但是需要的配置也比较多,团队较大的可以优先考虑,fastlane是用Ruby语言编写的一套自动化工具集,比较轻便,配置简单,使用起来也很方便。本文会详细的介绍fastlane从安装到上传APP到蒲公英的整个流程。
智能化自动生成文本总结的方法
对长文本进行总结和概括一直以来都是一项繁琐的任务,需要工作人员耗费大量的时间和精力去理解文本内容再对重要信息进行提炼和整合。尤其是针对一些晦涩难懂且专业性较强的文本,更是只有经验丰富的工作人员才能对文本进行正确的理解和总结。因此,我们渴望用一种自动化的方式来实现对文本进行准确的总结和概括。
随着神经网络和自然语言处理技术的发展,为自动化生成摘要、总结提供了有效的方法,并在一定程度提高了人们的工作效率。本文将从当下比较热门、效果较好的技术来为大家进行介绍。
React 路由使用
react-router-dom是一个处理页面跳转的三方库。
初探视频原理和FFmpeg
阅读本文你将获得以下知识:了解视频的基本原理。了解 FFmpeg 是什么,和一些常用的用法。用 FFmpeg 搭建简单的视频直播推流。FFmpeg 在 NodeJS 中的一些用法。
Python subprocess模块项目实战
我们日常测试中存在大量重复的造数操作,且流程较长,为了提升测试效率,我们搭建了数据构造平台。平台采用了前端+脚本分离的形式,数据构造脚本独立存在,页面和脚本的关联关系通过页面配置进行绑定。页面配置中,包含了脚本的路径以及启动命令,因此,运行脚本的时候需要在服务器上启动子进程中去执行脚本命令。为了能够了解脚本的执行情况,还需要获取脚本的执行状态以及执行日志。平台后端语言是Python,因此,选择了Python中的subprocess模块,本文重点阐述subprocess模块在项目实战中遇到的问题以及解决方案。
鸿蒙应用自动化测试实践
Appium是移动端自动化测试非常有力的工具,那么对于在鸿蒙设备上自动化测试鸿蒙应用的支持情况如何呢?
CSS国际化
今天我们将讨论一个容易被忽略却很重要的话题:CSS国际化。
聊聊UUID
UUID(universally unique identifier) 长度是128 bit,也就是由32个16进制数值组成。其中 M 表示 version,N 表示 Variants xxxxxxxx-xxxx-Mxxx-Nxxx-xxxxxxxxxxxx。例如:5aadc328-8d5e-11ec-8a00-acde48001122。