Markov(阿里妈妈功能测试平台)是在测试转型大背景下自研的新一代功能测试平台。介绍可以查看官方开源地址。
当看到阿里又开源了,优秀的测试框架呢,我们查找到了源码,然后git clone 下。
代码语言:javascript复制git clone https://github.com/alibaba/intelligent-test-platform.git
下载后,我们利用IDEA打开,然后我们去修改下pom文件,里面有一个坑。
代码语言:javascript复制<dependency>
<groupId>net.sf.json-lib</groupId>
<artifactId>json-lib</artifactId>
<version>2.4</version>
<classifier>jdk15</classifier> #增加的是这个
</dependency>
如果不加。
com.alibaba.markovdemo.engine.util 的JsonPathParser会报错。加完就可以正常。
然后我们去在本地的数据库去创建下,我们的数据库,因为我使用的mysql的5.7版本,所有有报错,sql 语句的报错
去掉这两个内容应该可以创建我们的数据库了。创建完毕后,我们需要去修改 application.properties的配置
代码语言:javascript复制
spring.datasource.driver-class-name = com.mysql.cj.jdbc.Driver
spring.datasource.url = jdbc:mysql://127.0.0.1:3306/markov_demo?useUnicode=true&characterEncoding=utf-8
spring.datasource.username = root
spring.datasource.password =
mybatis.mapper-locations= classpath:mapping/*Mapper.xml
mybatis.type-aliases-package=com.alibaba.markovdemo.entity
主要去修改下数据库的url root 和password ,我这里没有按照官方的说法去改端口号,我用的默认的8080端口,然后点击运行。输入
http://localhost:8080/
反问的界面。
我去配置了配置管理。我直接复制的pipeline_demo,这里有改动,如下
代码语言:javascript复制{
"new-deploy-stage": {
"name": "DEMO测试机部署信息",
"hostList": [
{
"hostname": "beijing",
"ip": "127.0.0.1"
}
]
},
"run-stage": [
{
"stageName": "prepareData-stage",
"exec": {
"pluginList": [
{
"plugin_type": "java",
"plugin_name": "数据准备通用插件",
"display_name": "数据准备通用插件",
"class": "com.alibaba.markovdemo.engine.plugins.inputdata.DataPreparePlugin"
}
]
}
},
{
"stageName": "caseRun-stage",
"before_exec": {},
"params": {
"retryNum": 0
},
"after_exec": {},
"exec": [
{
"group_name": "ERPC校验(第一组)",
"exec": [
{
"stageName": "check-stage",
"exec": {
"pluginList": [
{
"plugin_type": "java",
"plugin_name": "erpc发送和校验插件",
"display_name": "erpc发送和校验插件",
"class": "com.alibaba.markovdemo.engine.plugins.pluginSet.SendAndCheckDemoPlugin"
}
]
}
}
]
}
]
}
],
"layoutConf": {
"dataPrepareStageNew": {
"dataPrepareLayoutList": [
{
"type": "Tair",
"dsNameList": [
"table.markovtair.test"
],
"templates": {}
},
{
"type": "Imock",
"dsNameList": [
"erpc_merger_inner"
],
"templates": {}
},
{
"type": "Tdbm",
"dsNameList": [
"table.markovtdbm.test"
],
"templates": {}
}
],
"mapId": {
"232": 795,
"4112": 794,
"table.markovtair.test": 796,
"erpc_merger_inner": 798,
"table.markovtdbm.test": 797
}
},
"componentStage": [],
"logStage": [
{
"pluginName": null,
"displayName": "执行日志",
"pluginType": "caseRunStage"
},
{
"pluginName": null,
"displayName": "数据准备阶段",
"pluginType": "prepareData"
},
{
"pluginName": null,
"displayName": "运行阶段",
"pluginType": "checkStage"
}
]
}
}
因为我去掉了docker。
然后点击功能测试,去新建我们的用例。
可以输入内容进行尝试
日志可以正常打印日志
点击智能推荐用例,可以一键推荐用例,选择特征,更新特征池,然后选特征,推荐测试用例。
然后会告诉你基于什么算法推荐的,然后你可以根据推荐的算法的用例,查看,然后批量选择进行使用,就可以进行保存
这是我筛选后选择的用例
点击智能用例生成。选择测试用例
确认后,后台自动生成。
最后大概执行的结果如上。
我们可以进行回归构建,
可以更新我们的测试环境,
我们还可以查看执行历史
当然了,我们可以可以查看日志,
报告。
选择用例后,我们还可以进行用例的膨胀的操作。
可以选择用例膨胀的组合,然后进行后台膨胀,
我们可以根据膨胀产生的用例,选择使用保存
保存后的用例,我们可以进行执行
执行后的测试报告。
上面的只是大概讲述了,我去简单的搭建过程中遇到的问题,以及搭建的过程中一个尝试的过程。后续的很多的功能,还有待探究,主要搭建过程,简单的试用。具体后续使用,我们还要继续探究。
关于智能化的内容我们可以查看。里面讲述的内部的算法的实践。
https://github.com/alibaba/intelligent-test-platform/blob/master/Intelligent.md