码迷,mamicode.com
首页 > 编程语言 > 详细

python自学1——代码优化1

时间:2017-09-03 13:14:58      阅读:187      评论:0      收藏:0      [点我收藏+]

标签:代码   requests   excel   append   import   row   for   开始   管理   

优化了上次的代码,请求方式可接收get和post两种,代码中对两种方式做了判断。

测试结果中提取了测试用例的名称、请求返回的状态、请求的时间。

 1 #coding:utf-8
 2 import xlrd
 3 import requests
 4 
 5 #下文中将用到的全局变量
 6 nrows = 0
 7 rdict = {} #存储请求参数
 8 relist=[]  #存储返回结果
 9 
10 #从excel中导入数据
11 def imptestcase():
12 
13     fname = testcase.xlsx
14     sheet_name=case1
15     bk = xlrd.open_workbook(fname)
16 
17     try:
18         sheet = bk.sheet_by_name(sheet_name)
19     except:
20         print("no sheet in %s named sheet1" %fname)
21 
22     global nrows
23     nrows = sheet.nrows
24     ncols = sheet.ncols
25 
26     for i in range(0,ncols): 
27         data = sheet.col_values(i) 
28         global rdict
29         rdict[data[0]]=data[1:]
30 
31 
32 #将excel读取的数据封装成请求,并发送
33 
34 def sendpost():
35     #response = requests.post(url,json = data,headers = headers,verify=False) 
36     for i in range(0,nrows-1):
37         url = rdict[url][i]    
38 
39         if rdict[headers][i]!=‘‘:
40             headers = eval(rdict[headers][i]) #str to dict
41         else:
42             headers = {}
43 
44         if rdict[json][i]!=‘‘:
45             json = rdict[json][i] #str to dict
46         else:
47             json = {}
48 
49         if rdict[params][i]!=‘‘:
50             params = eval(rdict[params][i]) #str to dict
51         else:
52             params = {}
53 
54         try:
55             if rdict[method]==get:
56                 r = requests.get(url,headers = headers,params = params,verify=False)
57             else:
58                 r = requests.post(url,json = json,headers = headers,verify=False)
59             r.raise_for_status()
60             r.encoding=r.apparent_encoding
61             global relist
62             relist.append(Casename: +rdict[casename][i])
63             relist.append(Status: +str(r.status_code))
64             relist.append(Date: +r.headers[Date])
65             
66         except Exception as e:
67             print(e)    
68             print(fail)
69             relist.append(str(e))
70 
71 #把返回的结果输出到html中,形成HTML报告(知识简单的展示,没有样式)
72 def output_html(): 
73     fout=open(output.html,w,encoding=UTF-8, newline=‘‘) 
74     fout.write(<html>) 
75     fout.write(<head>) 
76     fout.write(<meta charset = "UTF-8"/>) 
77     fout.write(</head>) 
78     fout.write(<body>)
79     fout.write(<h1>report<h1>)
80     fout.write(<table>)
81     fout.write(<tr>)
82     #fout.write(‘<td>%s</td>‘ % relist)
83     for i in range(0,len(relist)):
84         fout.write(<td>%s</td> % relist[i])
85     fout.write(</tr>)
86     fout.write(</table>)
87     fout.write(</body>)
88     fout.write(</html>) 
89     fout.close()
90 
91 if __name__ == __main__:
92     imptestcase()
93     sendpost()
94     output_html()

测试用例

技术分享

测试结果

技术分享

 

之后的计划:

1. 优化导入用例以及封装请求的代码

2. 优化测试结果,展示位更友好的页面

3. 由于这短时间学习的过程中使用的都是notepad来编写代码,随着代码量的增加,下一步考虑使用pycharm等IDE,便于管理。

 

题外话:

刚开始学习Python,代码写的太low,仅仅为了实现功能而已,博客园的各位大神请勿鄙视,希望能收到好的建议。

 

python自学1——代码优化1

标签:代码   requests   excel   append   import   row   for   开始   管理   

原文地址:http://www.cnblogs.com/wyfighting/p/7469177.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!