• 0
  • 0
分享
  • 超好用的自动化测试工具Python脚本——软件测试圈
  • quinn 2022-09-29 11:53:33 字数 1214 阅读 2377 收藏 0

前言

自动化测试会越来越受到重视

在移动互联时代,对于质量的要求PC时代的多,投产出最的动化测试,将会是部分公司的选向,但需要严格掌握门语。

快速、高效的测试工具及脚本,能使程序猿的开发工作事半功倍。笔者进入到研发中心工作之后,参与到一个报文平台的重构项目中。该项目老平台基于C语言编写,架构老旧,可维护性与扩展性较差;为了紧跟研发中心的技术迭代步伐,新平台使用新的工具进行重构,使其构建发布、参数配置更灵活,便于后续维护与扩展。

在新平台的重构开发过程中,报文的路由测试是很关键的部分。由于系统涉及一百多种不同格式的报文,且系统安全性要求较高,每个报文在系统中交互时都要进行加验签检查,所以需要对整个系统进行全面、严密且覆盖所有报文类型的测试工作。

之前开发中的测试均通过手动将报文粘贴到测试工具中触发,此方法不仅效率低,且容易造成人为测试噪点,后续回归测试更是噩梦。为了解决此类问题,提升个人开发效率,笔者在开发测试环境中使用python语言实现了报文平台的自动化测试。

自动化测试分为三个部分,分别是测试数据的产出、发送测试数据和监控测试结果,如图1所示:

11.png

图1 整个自动化测试流程图

第一部分

测试数据的产出是从常备测试环境拉取历史日志,通过使用log_split.py脚本,按照日志里的语法规则对所需的测试数据进行切割,并去除冗余数据。接下来,根据切割后数据的关键字进行分类,分别放入不同类别的测试目录下,部分脚本代码如图2所示:

22.png

图2 log_split.py脚本部分代码

第二部分

发送测试数据分为两种形式,分别是手动单条报文发送和多条报文定时发送。单条发送多用于验证不同场景下的业务逻辑,而多条定时发送则可进行一定程度上的回归与压力测试。以手动单条测试为例,通过使用send_wb_testdata.py脚本读取指定的测试数据并放入到对应的数据队列中,部分脚本代码如图3所示:

33.png

图3 send_wb_testdata.py脚本部分代码

第三部分

最后为监控测试结果,当测试进入到报文平台处理程序时会调用read_test_resdata.py脚本,通过测试数据的标识号对程序日志进行匹配,并使用语法规则对日志里的关键信息进行截取,然后输出此次测试的结果。

Python语言非常灵活与简便,语法简洁,易学易上手。笔者构想与编写整个自动化测试脚本只花费了几个工作日中的零碎时间,但是使用自动化测试脚本后让整个开发测试周期节省的时间远超几个工作日。python语言逐渐普及,绝大部分linux操作系统均安装了python2.7,无需别的配置工作可直接上手编写。python能很好的支持调用linux命令,在一定程度上可取代shell,可快速编写服务器执行程序。如果你有同样的需求,不妨用python试下。


作者:软件测试凡哥

原文链接:https://blog.csdn.net/m0_70618214/article/details/125045977

  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          • 一、为什么要梳理业务?因为在业务测试中,作为测试人员,熟悉负责的业务是非常重要的,而通过阶段性的梳理总结,可以让你的业务知识系统化的沉淀下来。当你被别人问起这个业务系统的测试重点在哪里?难点如何克服?为什么要这样设计等等问题,可以有条不紊的进行输出。又或者,当你任务需要交接,或者需要别人支援你的业务,此时你可以自信的把文档丢过去,拍拍胸脯说:看一遍你就知道了。另外,当你有了多种业务的沉淀之后,你甚至可以提炼出很多通用性的东西,我称为“方法论”。二、梳理业务框架如何进行梳理呢?这里我参照常规的服务系统,写一些思路,仅供参考。1、测试场景这部分可以整理出业务系统的测试场景。可以重点贴出核心的测试场...
            1 1 3462
            分享
          •   实战案例  「Q:微博发动态,设计一下测试点」  虽说是发动态,但是测试时不能只是关注发动态这一操作的功能,发完动态之后,我们要确保动态要对外可见(对关注的人可见),单单测试发动态这个操作,实际上意义是不大的,毕竟只测发动态,不能实现测试闭环。  所以测试用例一定要把整个使用流程的case都要涉及到,避免漏测。  「Q:对一台自动售货机进行测试用例设计」  「Q:设计微信发红包测试用例」  「Q:设计抖音直播功能测试用例」  除了下图列举的一些测试点之外,还需要考虑 后台 的测试,譬如:审核后台、监控平台、数据中台 等等   「Q:微信红包是先计算每个人能获得的钱还是当这个人点了再计算。」...
            1 0 5592
            分享
          •   新浪科技讯据报道,谷歌(105.22,-3.58,-3.29%)母公司Alphabet今日要求法庭驳回多家广告商最新提交的修改后的集体诉讼。  2021年,多家广告商对谷歌提起集体诉讼,指控谷歌滥用其在数字广告上的主导地位。后来,加州圣荷地方法院法官贝斯·拉布森·弗里曼(BethLabsonFreeman)驳回了该诉讼。  但同时,弗里曼也保留了原告再次提起诉讼的机会。弗里曼称,原告需要厘清他们认为谷歌独占了哪个市场;还需要进一步解释,为什么说谷歌拒绝支持竞争对手的广告系统是反竞争行为,因反垄断法并未规定垄断方协助竞争对手生存。  对于广告商提交的修改后的集体诉讼,Alphabet称,提起...
            0 0 960
            分享
          •   压测和性能分析方法论  性能测试基础  性能测试的常见分类  性能测试。用来验证系统的性能是否满足设计的预期,一般来说对系统的压力会比较小,不会压垮系统,只是进行简单的验证。  负载测试。通过不断施加负载压力,寻找系统最优的处理能力,最好的性能状态,达到最大的性能指标。通常说来,负载测试的结果比性能测试的结果高一点。  稳定性测试。可以认为是负载测试的一个子集,长时间不均匀的施压,然后看系统的各项指标是否都正常。  压力测试:是我们常见的,一般我们将压测都是指这个,用来确定系统能够抗住的最大容量是多少,压力测试一般都会压到系统最大能够承受的点,然后得出一个峰值结论。  压测类型和施压模式 ...
            0 0 788
            分享
          • 三角形三边面试题,是一个经典的很老的题了,在2011年的时候,华为面试遇到过,今天无意中搜到了,加上自己理解和思路汇总下,这个题主要是等价类划分的应用对一个三角形三边如何设计测试用例假设三边分别为A、B、C,那么根据现有条件,我们可以设计以下功能点先来看看构成三角形的条件1、任意两边相加之和大于第三边a + b > c a + c > b b + c > a2、两条边相等,两条边的平方和等于第三边的平方和a = b >&n...
            14 14 5195
            分享
      • 51testing软件测试圈微信