海外网站,三亚最新通告文昌最新通告,手机怎么登pc端智慧团建,公司网站建设问题1.优化内容#xff1a;
当用户需要仅执行测试用例里面指定的某一条或某几条用例运行时 具体方案#xff1a;#xff08;用例筛选#xff09; #xff08;1#xff09;全部执行 #xff08;2#xff09;分段执行 用例01-用例07 #xff08;3#xff09;随机执行某一个…1.优化内容
当用户需要仅执行测试用例里面指定的某一条或某几条用例运行时 具体方案用例筛选 1全部执行 2分段执行 用例01-用例07 3随机执行某一个 用例03 4混和模式[用例01,用例03-用例07,用例09] 函数名def get_excel_data()
版本v3.0
函数功能
1获取请求的body与预期的响应结果
(2)可以自定义获取对应的列数据
3需要获取测试用例里面指定的某几条用例运行
具体方案用例筛选1全部执行2分段执行 用例01-用例073随机执行某一个 用例034混和模式[用例01,用例03-用例07,用例09]
框架层Pytest只能定制化执行接口层-跑某一个接口或不跑 某一个接口
但是具体的测试用例的挑选框架做不了
pytest框架靠一个数据驱动的装饰器执行 pytest.mark.paramzied(excel挑选出来的用例)
# --------------- v3.0 --------------
import xlrd# 可变数量参数*args(可以传多个参数)元组形式
#selectCase[all],如果不指定就默认全部执行
#caseName参数用例编号
def get_excel_data(excelDir, sheetName, caseName,*colName,selectCase[all]):resList[]# formatting_info 保持原样式workBook xlrd.open_workbook(excelDir, formatting_infoTrue)workSheet workBook.sheet_names() # 获取所有表名# 获取具体的表模块workSheet workBook.sheet_by_name(sheetName)函数调用者使用列名标题url代码真正操作使用列的编号思路转化把函数调用者输入的列名转为列编号
# --------------指定列名----------------------colIdxList []#函数调用者输入列名转化后的列编号-用列表存放for i in colName:#遍历用户输入的列名colName是元组numworkSheet.row_values(0).index(i)#取出第0行然后按值求下边(列表求下标)colIdxList.append(num)print(列编号--,colIdxList)# ————————————————————————————————————函数调用者指定某一条或某一段用例编号# ---------------挑选用例执行---------------------selectList[]if all in selectCase:#全部执行,一整列数据col_values(0)selectListworkSheet.col_values(0)else:# 1.某一个 2.某一段for one in selectCase:if - in one:#是-代表执行一段.需要切割[03-06]start,endone.split(-)# 03 06for i in range(int(start),int(end)1):#3,7# {i:03}保证3位不够补0.# 拼接用例编号-接口名编号Login3---Login003selectList.append(caseNamef{i:03})else:selectList.append(caseNamef{one:03})
# ————————————————————————————————————# 获取数idx 0 #代表行号初始值for one in workSheet.col_values(0):#获取第0列数据if caseName in one and one in selectList:# 条件满足则需要这以后数据中的对应列getColData []# 存放一行中对应的多列数据for colIdx in colIdxList:#遍历列名转化后的列编号拿到所有需要的列colIdxres workSheet.cell_value(idx,colIdx)#读取某一个单元格数据getColData.append((res))resList.append(getColData)idx1return resListif __name__ __main__:configData[用例编号,标题,url]#代码的装包和解包#*configData--将元组、列表解成单个元素resget_excel_data(../data/Delivery.xls, 登录模块,Login,*configData,selectCase[001,003-004])print(res)for one in res:print(one)测试反馈
1.如果是普通字符串-不需要转化
2.如果是json字符串-需要转为字典因为后续接口需要子弟啊格式
建议需要转化json字符串的形式