美文网首页
基于模型的测试框架Pymodel介绍

基于模型的测试框架Pymodel介绍

作者: 萩茝 | 来源:发表于2020-09-22 12:25 被阅读0次

前言

开源框架PyModel可以实现基于模型的测试。下面简单介绍一下它的使用方法。

Windows系统安装步骤

1、直接clone到本地目录:

git clone git@github.com:jon-jacky/PyModel.git

2、进入clone下来的目录中,在PyMode文件夹下,执行安装命令:

python setup.py install
安装到此就算完成了。但是每次执行测试命令先都得cd到PyMode\bin 目录下,执行命令pymodel_paths

然后才可以在这个windows终端中执行PyMode的各种测试命令。

比如cd到sample目录下的具体项目目录下,执行trun test 来执行示例中的测试。推荐查看samole目录下的Socket示例。

PyModel中包含的几个主要程序:pmt、pma、pmg、pmv

pmt:生成用例和跑用例

pmt的参数用法,可以在命令行中执行pmt -h 查看

pmt可以执行两种类型的测试:offline testing 和 on-the-fly testing

offline testing:测试的顺序和结果都是事先确定好的,一般的单元测试工具提供的都是这种类型的测试。

on-the-fly testing:需要Controllable actions(能被pmt调用到的:比如在Socket示例中的send_call和recv_call)和Observable actions(不能被pmt调用,是被被测系统调用,然后传回来。比如Socket示例中的send_return和recv_return)

pma:根据模型生成有限状态机(FSM)
pmg:根据FSM(通常由pma)来生成一个.dot文件,文件里是画图语言,后续生成图片用。

pmv:调用pma、pmg和dot命令,让分析和显示可以用一个命令完成。

怎么使用PyModel写测试?

1、实现模型程序:

示例:https://github.com/jon-jacky/PyModel/blob/master/samples/Socket/msocket.py

  • action函数:会定义一些action函数,表示系统的某项操作;

  • actionA_enable函数:返回True or False 定义某个action能被操作的条件;

  • state:一个元组,元素是被测系统的状态;

  • actions:一个元组,元素action函数;

  • cleanup:一个元组,元素是部分action函数,做清理操作用的;

  • enablers:一个字典,定义了action和相应action_enable函数之间的关系,当需要执行action函数前都得确保与之相对应的action_enable函数返回True才可以;

  • domain:一个字典,限制了各个action的参数取值

  • Accepting函数:返回True or False.定义系统是否处于可接受状态,在跑测试的时候测试结束条件可以用到。

  • Reset函数:重置状态

2.实现Test Harness/Steper/adapter

示例https://github.com/jon-jacky/PyModel/blob/master/samples/Socket/stepper_d.py

test_action:根据具体传入的函数名字和参数,在被测系统上做相应操作。

3.定义Observable actions

示例:https://github.com/jon-jacky/PyModel/blob/master/samples/Socket/observables.py

4.写执行具体测试命令的文件,比如叫test.py:

示例:https://github.com/jon-jacky/PyModel/blob/master/samples/Socket/test.py

主要就是调用pmt命令来执行测试

最后使用 trun xxx即可执行测试(xxx即4中的文件名称)。

另外还可以写一些限制和复杂的选择策略来丰富测试。

后记

本文主要介绍了基于模型的测试pymodel的具体使用方法,可以使用它来落地实现基于模型的测试,给自动化测试带来一些新的尝试。

相关文章

  • 基于模型的测试框架Pymodel介绍

    前言 开源框架PyModel可以实现基于模型的测试。下面简单介绍一下它的使用方法。 Windows系统安装步骤 1...

  • PyModel简介

    PyModel是一个用Python编写的基于模型的开源测试(所谓的MBT)工具。 在基于模型的测试中,我们编写一个...

  • selenium3.0 平台级自动化测试框架综合实战[百度网盘分

    第1章 课程介绍 本章整体介绍基于webdriver的自动化测试框架详情,主体分为外部框架及内部框架。 1-1 课...

  • iOS单元测试

    iOS单元测试 前言 单元测试使用XCTest框架 单元测试的目标:模型文件 用处:不基于界面UI的情况下,保证模...

  • Spock 简介,一个比Junit丰富的测试框架 (part 1

    1. 介绍 今天跟大家介绍一个测试框架Spock,框架是基于Groovy。Spock主要是提供比传统的Junit框...

  • 软件测试模型

    关键词:测试模型 按测试模式来分类: 瀑布模型、敏捷测试、基于脚本的测试、基于风险的测试、探索式测试等。 1、(传...

  • 优化算法matlab实现(五)改进粒子群算法

    前面几篇中,我们介绍了优化算法的框架,在框架的基础上实现了粒子群算法,并找了测试函数来进行测试。可以看出,基于框架...

  • Airtest 笔记1:快速入门

    1、介绍 Airtest 框架跨平台:支持window、Android、ios基于图像识别UI自动化测试框架 Po...

  • 基于Python的Selenium经验总结

    大家都知道,基于Web端的测试的基础框架是需要Selenium做主要支撑的,这里边给大家介绍下Web测试核心之基于...

  • 软件测试模型

    软件测试是软件质量保证的重要手段之一,软件测试模型则是软件测试的工作框架,用于指导软件测试过程。今天,我们就来介绍...

网友评论

      本文标题:基于模型的测试框架Pymodel介绍

      本文链接:https://www.haomeiwen.com/subject/ahkwyktx.html