我是靠谱客的博主 纯情棉花糖,最近开发中收集的这篇文章主要介绍自动化测试-插件端的详细方案(包含插件需要服务端的接口设计),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

插件方案
分两部分:
1.原有的插件基础上的改造
2.和服务端的通信接口设计

1.原有的插件基础上的改造
插件的改造界面细节,分了几部分截图,每个截图都有新内容,最后的界面功能是,这些截图中功能的总和。
登录功能的设计,下图:

编辑框部分在下面:

插件的改造界面细节,重点设计了在和上面图不一样的地方:

插件的改造界面细节,重点设计了和上面图不一样的地方:

插件的界面功能自述:
1.插件既可以用来新增测试用例,还可以加载打开项目的测试用例(增加suite下拉选择框,可以选择项目下的其中一个suite,然后显示在界面上的Test Suites下,其下是所有的测试用例,并且编辑界面显示的是suite的第一个测试用例所有步骤)
不光是可以加载服务端的已经存在的测试用例,用来修改,修改后保存 到服务端,然后还可以选择是否同时去在服务端执行该suite下的指定的单个或者几个测试用例还是全部执行该suite的测试用例,要告诉服务端,还可以选择是否在客户端执行测试用例,选择在客户端执行的话,点击执行,就会先保存到服务器端(suite保存到项目下),然后服务端后台保存好后,发送一份保存好的被插件选择的suite下的几个测试用例,发送(通过ansible或者直接从插件保存到本地的测试项目文件取)到客户端,然后调用客户端的robot接口执行测试用例进行回放,用户会看到本地启动一个新的浏览器窗口,执行了自动化测试操作。
2.插件端不光是加载服务端的测试项目下的suite和指定选择其中的几个测试用例去执行,还可以新建suite(会自动在suite下拉框下新增一条suite名)和其下的测试用例(有没有保存到服务端的suite颜色不一样,有没有将最新的修改同步到服务端显示的标志也不一样),然后点击录制按钮,进行ui页面操作的录制,录制的每一步,都可以立即在插件上进行修改,也可以等ui的录制完成,在插件端一一的修改每一步(之所以需要修改是因为,你可能需要加变量,加非ui的测试步骤,打印变量内容,增加判断等ui录制一步无法涉及的地方),都加好后,点击同步到服务端按钮,就会在插件选择的测试项目下保存好刚才发送过来的suite内容,本地也会保存一份所有的测试项目下的suite,并且实时跟着修改而更新成最新的内容。
3.插件端还要可以新建测试项目,然后在项目下新建suite,然后在suite下新建测试用例,然后将已经在插件端搞好的测试项目整个目录结构发往服务端。

插件界面需要新增的界面元素
1.新建服务端的云测试项目按钮,会在项目的下拉框中自动的新增一条项目名,并自动切换到当前新建的云测试项目名
2.测试用例前面需要有选择框,被用来执行时是否被选中
3.同步项目测试用例文件到服务端,同步会将所有在插件端的文件全同步到服务端
4.选择框
1.是否在服务端执行测试用例
2.是否在客户端执行测试用例
5.执行按钮,会根据测试用例前面的选择框是否选中,在客户端还是服务端执行选择框是否被选中,来仅将选中的几个测试用例是否同步到服务端,并执行,是否同步到客户端,来执行。
5. 测试项目,suite,测试用例,有没有保存到服务端颜色不一样
6. 测试项目,suite,测试用例,有没有将最新的修改同步到服务端显示的标志也不一样

插件的本地缓存存储结构:
使用json格式文件存储云测试项目下的所有内容:
1.文件夹名是zcm项目名
2.zcm项目名文件夹下文件夹名是所有云测试项目名
3.云测试项目文件夹名下的json文件名是所有的suite名
4.suite名的json文件内容如下:
[
{
“测试用例名1”:[
{
“var”:"",
“command”:"",
“value”:[“值1”,“值2”,“值3”],
“target”:"",
“selector”:"",
},
{
“var”:"",
“command”:"",
“value”:[“值1”,“值2”,“值3”],
“target”:"",
“selector”:"",
}
]
},
{
“测试用例名2”:[
{
“var”:"",
“command”:"",
“value”:[“值1”,“值2”,“值3”],
“target”:"",
“selector”:"",
},
{
“var”:"",
“command”:"",
“value”:[“值1”,“值2”,“值3”],
“target”:"",
“selector”:"",
}
]
}
]

2.和服务端的通信接口设计
服务端需要提供的接口:
0.登录zcm账户,并返回这个账户对应的所有拥有的zcm项目名,每个项目名对应的测试项目名,每个测试项目名对应的所有的suite名(仅仅返回名字不用返回下面的测试用例数据),授权码。
{
“zcm的用户名”:"",
“zcm用户的加密过后的密码”:"",
}
返回:
{
“返回的授权码”:"",
“用户下的suite”:[
{
“zcm项目1”:[
{
“测试项目1”:[“suite名1”," suite名2"]
},
{
“测试项目2”:[“suite名1”," suite名2"]
}
],
},
{
“zcm项目2”:[
{
“测试项目1”:[“suite名1”," suite名2"]
},
{
“测试项目2”:[“suite名1”," suite名2"]
}
],
}
]
1.一次只保存单个测试用例到服务端,用于单个测试用例的保存按钮功能
{
“zcm项目名”:"",
“云测试项目名”:"",
“suite名”:"",
“测试用例名”:[
{
“var”:"",
“command”:"",
“value”:[“值1”,“值2”,“值3”],
“target”:"",
“selector”:"",
},
{
“var”:"",
“command”:"",
“value”:[“值1”,“值2”,“值3”],
“target”:"",
“selector”:"",
}],
“授权码”:""
}
返回:
{
“status”:“successed/failed”,
“errmsg”:""
}

2.一次保存单个suite下的所有测试用例到服务端,用于suite的同步到服务端按钮功能
{
“zcm项目名”:"",
“测试项目名”:"",
“suite名”:[
{
“测试用例名1”:[ {
“var”:"",
“command”:"",
“value”:[“值1”,“值2”,“值3”],
“target”:"",
“selector”:"",
},
{
“var”:"",
“command”:"",
“value”:[“值1”,“值2”,“值3”],
“target”:"",
“selector”:"",
}
]
},
{
“测试用例名2”:[
{
“var”:"",
“command”:"",
“value”:[“值1”,“值2”,“值3”],
“target”:"",
“selector”:"",
},
{
“var”:"",
“command”:"",
“value”:[“值1”,“值2”,“值3”],
“target”:"",
“selector”:"",
}
]
}
],
“授权码”:""
}
返回:
{
“status”:“successed/failed”,
“errmsg”:""
}

3.从插件选择的zcm项目->测试项目->suite,从服务端获取对应suite下的所有测试用例数据到本地显示到插件的编辑器中,如果在本地的插件中缓存了suite的数据,那么将直接显示本地的缓存的数据,插件对suite的修改首先会缓存到本地,只有点击同步按钮时才会同步到服务器端。
{
“zcm项目名”:"",
“测试项目名”:"",
“suite名”:"",
“授权码”:""
}
返回:
{
“suite名”:[
{
“测试用例名1”:[ {
“var”:"",
“command”:"",
“value”:[“值1”,“值2”,“值3”],
“target”:"",
“selector”:"",
},
{
“var”:"",
“command”:"",
“value”:[“值1”,“值2”,“值3”],
“target”:"",
“selector”:"",
}
]
},
{
“测试用例名2”:[
{
“var”:"",
“command”:"",
“value”:[“值1”,“值2”,“值3”],
“target”:"",
“selector”:"",
},
{
“var”:"",
“command”:"",
“value”:[“值1”,“值2”,“值3”],
“target”:"",
“selector”:"",
}
]
}
],
“status”:“successed/failed”,
“errmsg”:""
}
4.执行插件端选择的zcm项目->云测试项目->suite下测试用例,在服务器端执行还是在客户端执行可选,没被选中的测试用例不用执行。
{
“执行器选择”:[“服务器端”,“用户客户端”],
“zcm项目名”:"",
“云测试项目名”:"",
“suite名”:[
{
“被选中的测试用例名1”:[ {
“var”:"",
“command”:"",
“value”:[“值1”,“值2”,“值3”],
“target”:"",
“selector”:"",
},
{
“var”:"",
“command”:"",
“value”:[“值1”,“值2”,“值3”],
“target”:"",
“selector”:"",
}
]
},
{
“被选中的测试用例名2”:[
{
“var”:"",
“command”:"",
“value”:[“值1”,“值2”,“值3”],
“target”:"",
“selector”:"",
},
{
“var”:"",
“command”:"",
“value”:[“值1”,“值2”,“值3”],
“target”:"",
“selector”:"",
}
]
}
],
“授权码”:""
}
返回:
{
“status”:“successed/failed”,
“errmsg”:""
}
5.浏览器的插件,还需要从服务端获取所有的包括自定义的robot关键字,然后提供给用户下拉选择。
{
“robotKeyword”:“YES/NO”,
“授权码”:""
}
返回:
{
“robotKeyword”:[“关键字1”,“关键字2”,“自定义关键字1”],
“status”:“successed/failed”,
“errmsg”:""
}

最后

以上就是纯情棉花糖为你收集整理的自动化测试-插件端的详细方案(包含插件需要服务端的接口设计)的全部内容,希望文章能够帮你解决自动化测试-插件端的详细方案(包含插件需要服务端的接口设计)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(40)

评论列表共有 0 条评论

立即
投稿
返回
顶部