web测试接口的主要代码

都是简单的代码就没有写注释了
# -*- 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()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值