都是简单的代码就没有写注释了
# -*- coding: utf-8 -*-
#coding=utf-8
import webapp2
import os
import urllib
import logging
from google.appengine.ext import db
from google.appengine.ext.webapp.util import run_wsgi_app
from google.appengine.ext.webapp import template
from google.appengine.api import urlfetch
from datetime import datetime, timedelta
path = os.path.join(os.path.dirname(__file__),"template.html")
# 下面的这些都是变量来的
index = None
design_follow = None
design_test = None
lo = ""
#lo = None
run_test = None
check_result = None
admin = None
# 上面这些都是变量来的
def dotest(test_name,url,form_fields,for_result):
form_data = urllib.urlencode(form_fields)
result = urlfetch.fetch(url=url, payload=form_data, method=urlfetch.GET, headers={}, allow_truncated=False, follow_redirects=True, deadline=5, validate_certificate=False)
logging.info(result.status_code)
if result.status_code == 200:
rst = Result()
rst.test_name = test_name
rst.url = url
rst.data = form_data
rst.for_result = for_result
rst.put()
logging.info(result.content)
return "测试完成"
return "测试失败"
class Follow(db.Expando):
#测试流程
def getValues(self):
return self._dynamic_properties
class Test(db.Expando):
def getValues(self):
return self._dynamic_properties
class Result(db.Expando):
pass
class Ln(webapp2.RequestHandler):
def get(self):
global lo
lo = " "
self.redirect("/")
class Lt(webapp2.RequestHandler):
def get(self):
global lo
lo = None
self.redirect("/")
class MainHandler(webapp2.RequestHandler):
def get(self):
data = { 'index':1,}
resp = template.render(path,data)
self.response.out.write(resp)
class Design_follow(webapp2.RequestHandler):
def get(self):
data = { 'design_follow':1,}
resp = template.render(path,data)
self.response.out.write(resp)
class Design_test(webapp2.RequestHandler):
def get(self):
follows = Follow.all().order('-date')
test_follows = follows.fetch(10)
if follows.count(10) == 0:
test_follows = None
data = { 'design_test':1,'test_follows':test_follows,}
resp = template.render(path,data)
self.response.out.write(resp)
class Run_test(webapp2.RequestHandler):
def get(self):
tests = Test.all().order('-date')
test_tests = tests.fetch(10)
if tests.count(10) == 0:
test_tests = None
for i in tests:
logging.info(i)
logging.info(i.test_name)
data = { 'run_test':1,'tests':test_tests,}
if lo == None:
data = {}
resp = template.render(path,data)
self.response.out.write(resp)
class Check_result(webapp2.RequestHandler):
def get(self):
data = { 'check_result':1,}
if lo == None:
data = {}
resp = template.render(path,data)
self.response.out.write(resp)
class Admin(webapp2.RequestHandler):
def get(self):
data = { 'admin':1,}
resp = template.render(path,data)
self.response.out.write(resp)
class Design_follow_doing(webapp2.RequestHandler):
def post(self):
resp = self.request.body
self.response.out.write("服务器成功接收到测试流程")
args = self.request.arguments()
f = Follow()
logging.info(resp)
data = {}
for arg in args:
setattr(f,arg,self.request.get(arg))
mydate = datetime.utcnow() + timedelta(hours=+8)
f.date = mydate.strftime("%Y-%m-%d %H:%M:%S")
f.put()
class Design_test_doing(webapp2.RequestHandler):
"""docstring for Des"""
def post(self):
resp = self.request.body
self.response.out.write("服务器成功接收测试用例")
args = self.request.arguments()
t = Test()
logging.info(resp)
for arg in args:
setattr(t,arg,self.request.get(arg))
mydate = datetime.utcnow() + timedelta(hours=+8)
t.date = mydate.strftime("%Y-%m-%d %H:%M:%S")
t.put()
class Run_test_doing(webapp2.RequestHandler):
def post(self):
resp = self.request.body
args = self.request.arguments()
form_fields ={}
for arg in args:
logging.info(self.request.get(arg))
form_fields[arg] = self.request.get(arg)
del form_fields['test_name']
del form_fields['test_url']
del form_fields['check_result']
url = self.request.get('test_url')
for_result = self.request.get('check_result')
test_name = self.request.get('test_name')
status = dotest(test_name,url,form_fields,for_result)
logging.info(resp)
self.response.out.write(status)
class Search(webapp2.RequestHandler):
def post(self):
resp = self.request.body
key = self.request.get('follow_name')
query = Follow.gql("WHERE follow_name = '"+key+"'")
search_result = query.get()
logging.info(search_result)
if search_result != None:
data = {'test_follow':search_result,}
path = os.path.join(os.path.dirname(__file__),"search.html")
resp = template.render(path,data)
self.response.out.write(resp)
else:
logging.info("nofound")
self.response.out.write("nofound")
class Search_test(webapp2.RequestHandler):
def post(self):
resp = self.request.body
logging.info(resp)
key = self.request.get('test_name')
query = Test.gql("WHERE test_name = '"+key+"'")
search_result = query.get()
logging.info(search_result)
if search_result != None:
data = {'tests':search_result,}
path = os.path.join(os.path.dirname(__file__),"search_test.html")
resp = template.render(path,data)
self.response.out.write(resp)
else:
logging.info("nofound")
self.response.out.write("nofound")
app = webapp2.WSGIApplication([
('/', MainHandler),
('/index',MainHandler),
('/design_follow',Design_follow),
('/design_test',Design_test),
('/run_test',Run_test),
('/check_result',Check_result),
('/admin',Admin),
('/design_follow_doing',Design_follow_doing),
('/design_test_doing',Design_test_doing),
('/run_test_doing',Run_test_doing),
('/search',Search),
('/search_test',Search_test),
('/ln',Ln),
('/lt',Lt)
], debug=True)
def main():
run_wsgi_app(app)
if __name__ == "__main__":
main()