使用excel在自动化测试平台批量生成用例示例
在自动化测试工作中,测试人员所花时间最多的地方就是编写自动化测试用例,而把自动化测试用例一条一条写入自动化平台更是耗时巨大,把机械重复的事情自动化,本来就是自动化测试人员的职责,那么这件重复而又繁琐的事情当然该用自动化的方式解决.分析公司自动化平台我司做接口自动化采用的是阿里云效平台,自己手动在平台录入一条接口自动化案例,通过charles抓包可以看到,客户端(浏览器)与服务端之间的通信报文是明文
在自动化测试工作中,测试人员所花时间最多的地方就是编写自动化测试用例,而把自动化测试用例一条一条写入自动化平台更是耗时巨大,把机械重复的事情自动化,本来就是自动化测试人员的职责,那么这件重复而又繁琐的事情当然该用自动化的方式解决.
分析公司自动化平台
我司做接口自动化采用的是阿里云效平台,自己手动在平台录入一条接口自动化案例,通过charles抓包可以看到,客户端(浏览器)与服务端之间的通信报文是明文. 这就太好了,不需要去解决报文加密的问题.
设计思路
通过人工录入测试用例可以看到,此自动化测试平台每个用例有用例标题,用例请求头,报文,断言等多个字段,同时还会有用例所在项目,创建用例的测试人员名字等基本组织结构.
我司所有系统接口报文格式分为json,xml,json+xml,还有几个小众的系统就暂不考虑了.
设计以下文件,由测试人员填写,传入本用例生成平台.
-
项目信息文件
projectInfo.csv
前面三个即是本组用例所在项目结构, req_url是本接口的请求地址.
-
手工用例文件
testcase.xlsx
对照本接口的接口文档,逐个字段编写即可.name是字段名,value是正常值,err是异常值,每个可选值中间以|分隔,每个可选值又会在云效上生成一条自动化用例.
这个例子的用例,一共可以在云效平台生成55个自动化用例.
理论上,这样批量生成的接口自动化用例,可以实现单接口所有字段的所有可选值全覆盖.
-
本接口示例报文,开发提供或者直接在日志里捞取,不用修改任何字段,直接另存为文件
test.json或test.xml{ "head": { "sysCode": "EBK", "appsInfo": "", "optime": "1591344721472", "appVer": "20191211", "netType": "WIFI", "rocket": "A20060516123Ni7iw02Je5T440231on76R5M7", "versionName": "5.1.5", "deviceId": "86916102396", "deviceName": "Xiaomi--gemini", "osVer": "8.0.0", "osType": "ADR", "quickTrace": "740991", "staticInfo": "", "dynamicInfo": "", "channelCode": "ENK" }, "body": { "findModle": "0", "cardNo": "110003228000002" } }
为了方便快捷,本项目使用flask框架.
收到用户上传的文件, 解析成HttpRunner能用的json和csv文件,然后通过HttpRunner框架,发送报文给云效服务端,批量生成测试用例.

根据用户上传的 testcase.xlsx, 后台生成的test.csv文件示例
驱动HttpRunner脚本:
{
"config": {
"name": "create users with uid"
},
"testcases":
{
"ceshi1":{
"testcase": "./sat/json_post.json",
"parameters": {
"appId-interfaceId-serviceId-owner-cookie-req_url-paraId-rexResult-header_cookie": "${P(./sat/data/projectInfo.csv)}",
"testname-testraw-resdata": "${P(./sat/test.csv)}"
}
}
}
上线的前端界面


结尾
该项目上线之前,一个测试人员在不被任何人打断的情况下,往云效平台录入一个接口自动化用例,大概需要10分钟.
该项目上线之后,一个测试人员一天可以录入上千条测试用例,并且可以完整的覆盖一个接口的所有字段的所有可选值,达到100%覆盖效果.
再也没有人去手工录入接口自动化案例了.
更多推荐




所有评论(0)