python学习笔记-excel用例输入
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
python学习笔记(接口自动化框架V2.0)
这个是根据上次框架版本进行的优化
用python获取excel文件中测试用例数据
通过requets测试接口、并使用正则表达式验证响应信息内容生成xml文件测试报告
版本更新内容:
1. 整理了CreateTest.test_main()流程逻辑
2. 优化了testcase.xls文件格式
3. 添加了生成XML文件测试报告
代码如下:
1#!/usr/bin/env python
2# -*- coding: utf_8 -*-
3# 获取测试用例文件excel
4
5import xlrd
6import json
7
8
9class CreateExcel:
10def__init__(self):
11pass
12
13 @classmethod
14def open_excel(cls):
15 path = "testcase.xls"
16 workbook = xlrd.open_workbook(path)
17 table = workbook.sheets()[0]
18return table
19
20# 获取sheet
21
22 @classmethod
23def get_nrows(cls, table):
24 nrows = table.nrows
25return nrows
26
27# 获取行号
28
29 @classmethod
30def get_id(cls, table, nrows):
31 testid = []
32for i in range(1, nrows):
33 testid.append(table.cell(i, 0).value)
34return testid
35
36 @classmethod
37def get_name(cls, table, nrows):
38 testname = []
39for i in range(1, nrows):
40 testname.append(table.cell(i, 1).value)
41return testname
42
43# 获取用例name
44
45 @classmethod
46def get_data(cls, table, nrows):
47 testdata = []
48for i in range(1, nrows):
49try:
50 data = json.loads(table.cell(i, 2).value)
51 testdata.append(data)
52except ValueError:
53 testdata.append(None)
54return testdata
55
56# 获取data接口参数
57
58 @classmethod
59def get_url(cls, table, nrows):
60 testurl = []
61for i in range(1, nrows):
62 testurl.append(table.cell(i, 3).value)
63return testurl
64
65# 获取接口测试url
66
67 @classmethod
68def get_method(cls, table, nrows):
69 testmethod = []
70for i in range(1, nrows):
71 testmethod.append(table.cell(i, 4).value) 72return testmethod
73
74# 获取接口测试method
75
76 @classmethod
77def get_pattern(cls, table, nrows):
78 testpattern = []
79for i in range(1, nrows):
80 testpattern.append(table.cell(i, 5).value) 81return testpattern
82
83# 获取接口期望响应结果
84
1#!/usr/bin/env python
2# -*- coding: utf_8 -*-
3# 测试核心组件
4
5import requests
6import re
7from datetime import datetime
8from createexcel import CreateExcel
9from xml.dom import minidom
10import sys
11
12
13class CreateTest:
14 reload(sys)
15 sys.setdefaultencoding("utf-8")
16
17# 避免字符串写入文件出错
18
19def__init__(self):
20pass
21
22 @classmethod
23def test_api(cls, method, url, data):
24global results
25try:
26if method == "post":
27 results = requests.post(url, data)
28if method == "get":