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

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

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          •   无论是要理解测试,还是做好软件测试,都要抓住这7个核心问题:  1. 测试选择标准与测试充分性 (终止原则)  测试选择标准是选择测试集或确定?个测试集是否满足指定目标的方法。测试充分性标准可以用来决定何时测试充分或者是否完成。  2. 测试有效性与测试目标  通过一系列程序的执行对测试的效率进行分析。对将要执行的测试用例的选择因其目标而异, 即测试集的效率评价基于具体想要实现的目标。  3. 以寻找缺陷为目标的测试  在以寻找缺陷为目标的测试活动中, 是否能够导致系统失效,这是测试是否成功的标准。这与测试软件是否满足设计规约或其它属性有很大的不同, 后者的成功取决于软件在现实的测试用例和...
            0 0 757
            分享
          •   通用的测试管理过程主要可以分为三个部分:测试计划、测试监控和控制、测试完成。  从研发项目角度出发,测试管理过程可以用于不同级别的项目测试管理。  从测试阶段出发,测试管理过程可以用于不同测试阶段的测试管理,如集成测试、系统测试、验收测试等。  从测试类型出发,测试管理过程可以用于不同类型的测试管理,如功能测试、性能测试。  测试计划过程  测试计划过程用于制定测试计划。根据测试计划过程在项目中所处的位置不同,可以分为整体的测试计划(如系统测试计划),或某个类型的测试计划(如性能测试计划)。  创建一个测试计划,可以参考如下图1所示的过程。图1 测试计划过程  上图中箭头文字表示的是每一个...
            0 0 611
            分享
          •   作为一个工程师,你找工作的敲门砖是什么?是学历?是经验?还是年龄?  从事测试工程师的人员日趋增多,自然而然竞争也会变得激烈。如何让我们的工作履历变的更加精彩,除了我们实际的工作经验之外,能够直观我们技术的还有我们的职业证书,很多公司HR为了增加企业资质库、更快地筛查适合的人员,在招聘时会更倾向于拥有相关证书的应聘者。 今天我们就来盘点软件测试工程师领域含金量较高的几个证书吧! 软件测试工程师必须要了解的4个证书。  1.软件评测师  软件评测师考试(以下简称“软考”)是全国计算机技术与软件专业技术资格考试(简称计算机软件资格考试)的中级考试项目,它属于职业资格考试,又是职称资格考试,具有...
            1 1 10911
            分享
          • 一、为什么要梳理业务?因为在业务测试中,作为测试人员,熟悉负责的业务是非常重要的,而通过阶段性的梳理总结,可以让你的业务知识系统化的沉淀下来。当你被别人问起这个业务系统的测试重点在哪里?难点如何克服?为什么要这样设计等等问题,可以有条不紊的进行输出。又或者,当你任务需要交接,或者需要别人支援你的业务,此时你可以自信的把文档丢过去,拍拍胸脯说:看一遍你就知道了。另外,当你有了多种业务的沉淀之后,你甚至可以提炼出很多通用性的东西,我称为“方法论”。二、梳理业务框架如何进行梳理呢?这里我参照常规的服务系统,写一些思路,仅供参考。1、测试场景这部分可以整理出业务系统的测试场景。可以重点贴出核心的测试场...
            1 1 2920
            分享
          •   现在国内测试行业的断层实际上非常严重,不论是从公司角度,还是从测试行业角度。关于测试人的职业发展,相信每个人都有自己的深刻体会,特别是“老一点“的,又不在互联网大厂的测试人员。  本文针对几个测试同学普遍关注的典型问题,整理了测试专家刘晓光老师的解答,供大家交流探讨。  Question  1、测试技能的提高主要是依托于公司平台,还是个人外部自学能力?  2、国内大部分公司对测试职能是普遍低估的,如何让领导重视,提高测试的地位?  3、测试也细分了很多专项测试,从个人发展角度,专项测试 or 全面的系统测试,哪个更符合未来职业发展要求?  4、现在火热的测试开发(能力超高)是否已经脱离了测...
            0 0 906
            分享
      • 51testing软件测试圈微信