报表自动化项目调试(一)

1、from log import logger

logger.info("ddd", rex)有时候会出现init.py脚本错误,只能更换成import logging,使用logging.info()

2、for XXX in range(11):

print(xxx)就可以打印0到10

3、python runReportAuto.py %1 百分号含义。

4、

class CacheHandler(BaseHTTPServer.BaseHTTPRequestHandler):
def do_GET(s)://这个do_GET方法看不到调用的地方(前端代码Ajax中,string URL = "http://192.168.70.178:9200/?id=" + ids;)
if '?' in s.path:#如果带有“?”
d= s.path.split("=")//这个是把“=”号前后分开
print d
dstDir=r"C:\app\ApiTestUI\runReportAutoTestCase.bat"//这里为什么要加r
os.system('start '+dstDir+" " + d[1])//1、os.system()是说执行正确返回0,错误返回1,这句最主要就是用来执行语句的,相当于打开CMD指令窗口
2、可以替换:import subprocess
subprocess.check_output('start '+dstDir+" " + d[1])
3、d[1]相当于取到ids
buf="It works"

        s.send_response(200)
        s.end_headers()
        s.wfile.writelines(buf)

def run():
server_address = ('192.168.70.178', 9200)
httpd = BaseHTTPServer.HTTPServer(server_address, CacheHandler)//这两句用法很奇怪。CacheHandler调用了class,开始执行class中的方法

httpd.serve_forever()//服务一直开启




5、我这边jenkins跑出一份报告,怎么去调用的?我看很多文件都有main函数,是以runReportAuto.py先来看的么?

if __name__=="__main__":
main()
这个只是用来调试用的。

6、参数调用1:

if __name__=="__main__":

main(url,data,"prod")

def main(url,data,env):
if env=="prod":
Cookieurl="http://e.91yong.com/api/certification/center/login"
else:
Cookieurl="http://pre-e.91yong.com/api/certification/center/login"
参数调用2:
CookieBody='{ "user_name": "qa01", "password": "1", "tenant_code":"dxreport", "skip_duplicate_entries":true }'
r=GetWeb(Cookieurl,CookieBody,"post")
def GetWeb(url,data,method ='get'):

7、怎么打印req\header\cookie\filename?
(1)请求的header
ExploereHEADERS = {"Content-type": "application/json"},我们可以直接打印出来

(2)响应返回的header
req = urllib2.Request(url, data,headers = ExploereHEADERS)
response = urllib2.urlopen(req)
logger.info(response.headers)
或者:
connTESTDB=Conn('./config/dbconfig.conf', 'TESTDB')
ExploereHEADERS = {"Content-Type": "application/json; charset=UTF-8"
}

def webData1(method,path,data=None):
res = None
# print method, path
try:
# res = http.urlopen(method, path,fields=data,headers=ExploereHEADERS)
res = http.urlopen(method, path,headers=ExploereHEADERS,body=data)

except Exception, e:
pass
return res


def GetExcelData(url):
print 0, ExploereHEADERS
response = webData1("GET", url)
logger.info(response.headers)
logger.info(response.status)

8、打印报表的名字。
matchHeaders=re.search("Content-disposition",str(response.headers))//正则表达式
fileName=""
if matchHeaders:
fileName=(response.headers["Content-disposition"]).split("=")[1].decode("utf-8")//header中Content-disposition的[0]这部分去掉,取[1]中的汉字,格式‘utf-8’
the_page = response.read()//这里可以取到data的内容,取cookie是response.set_cookie
response.close()
return the_page,fileName

im = GetWeb(url,"")
if im==0 or im ==""://data没有内容
logger.info("#"*10+" url错误,下载失败 ##########" )
return 0
else:
fileName= re.sub('[\/:*?"<>|]','',im[1])//im[0]是the_page








posted on 2018-05-08 20:37  绝世无双小笛王  阅读(190)  评论(0)    收藏  举报

导航