コード例 #1
0
ファイル: caseparse.py プロジェクト: zffl/zffl
def load_cases():
    cases = []
    
    #case 1
    def postdata1():
        return ''
    def url1():
        return 'http://localhost'
    req = Request(url1,'POST',postdata1)
    req.verify = 'asdf'
    cases.append(req)

    return cases
コード例 #2
0
ファイル: chouti.py プロジェクト: sishui198/Python_code
 def start_requests(self):
     start_url = [
         'http://www.baidu.com',
         'http://www.bing.com',
     ]
     for url in start_url:
         yield Request(url, self.parse)
コード例 #3
0
ファイル: webshotbot.py プロジェクト: Godoleyas/Telegrambot
 def new_request(
         self,
         printer: Printer,
         _id: Optional[int] = None) -> Tuple[asyncio.Future, asyncio.Event]:
     future = asyncio.get_event_loop().create_future()
     user_lock = asyncio.Event()
     waiting_event = asyncio.Event()
     asyncio.create_task(
         self.release_user_lock(user_lock,
                                30 if printer.scroll_control else 2))
     if _id is not None:
         self.request_cache[_id] = user_lock
     request = Request(printer, future, user_lock, waiting_event)
     self.worker.new_task(request)
     return future, waiting_event
コード例 #4
0
def load_xml_cases_dom(dom):
    # load cases from an already-parsed XML DOM
    cases = []
    param_map = {}
    for child in dom.getiterator():
        if child.tag != dom.getroot().tag and child.tag == 'param':
            name = child.attrib.get('name')
            value = child.attrib.get('value')
            param_map[name] = value
        if child.tag != dom.getroot().tag and child.tag == 'case':
            req = Request()
            repeat = child.attrib.get('repeat')
            if repeat:
                req.repeat = int(repeat)
            else:
                req.repeat = 1
            for element in child:
                if element.tag.lower() == 'url':
                    req.url = element.text
                if element.tag.lower() == 'method':
                    req.method = element.text
                if element.tag.lower() == 'body':
                    file_payload = element.attrib.get('file')
                    if file_payload:
                        req.body = open(file_payload, 'rb').read()
                    else:
                        req.body = element.text
                if element.tag.lower() == 'verify':
                    req.verify = element.text
                if element.tag.lower() == 'verify_negative':
                    req.verify_negative = element.text
                if element.tag.lower() == 'timer_group':
                    req.timer_group = element.text
                if element.tag.lower() == 'add_header':
                    # this protects against headers that contain colons
                    splat = element.text.split(':')
                    x = splat[0].strip()
                    del splat[0]
                    req.add_header(x, ''.join(splat).strip())
            req = resolve_parameters(req, param_map)  # substitute vars
            cases.append(req)
    return cases
コード例 #5
0
ファイル: xmlparse.py プロジェクト: b3c/webQA
def load_xml_cases_dom(dom):
    # load cases from an already-parsed XML DOM
    cases = []
    param_map = {}
    for child in dom.getiterator():
        if child.tag != dom.getroot().tag and child.tag == 'param':
            name = child.attrib.get('name')
            value = child.attrib.get('value')
            param_map[name] = value
        if child.tag != dom.getroot().tag and child.tag == 'case':
            req = Request()
            repeat = child.attrib.get('repeat')
            if repeat:
                req.repeat = int(repeat)
            else:
                req.repeat = 1
            for element in child:
                if element.tag.lower() == 'url':
                    req.url = element.text
                    req.login = str(req.url).find( "login_form" ) != -1
                if element.tag.lower() == 'method': 
                    req.method = element.text
                if element.tag.lower() == 'body':
                    file_payload = element.attrib.get('file')
                    if file_payload:
                        req.body = open(file_payload, 'rb').read()
                    else:
                        req.body = element.text
                if element.tag.lower() == 'verify': 
                    req.verify = element.text
                if element.tag.lower() == 'verify_negative': 
                    req.verify_negative = element.text
                if element.tag.lower() == 'timer_group': 
                    req.timer_group = element.text
                if element.tag.lower() == 'add_header':
                    # this protects against headers that contain colons
                    splat = element.text.split(':')
                    x = splat[0].strip()
                    del splat[0]
                    req.add_header(x, ''.join(splat).strip())
            req = resolve_parameters(req, param_map)  # substitute vars
            cases.append(req)
    return cases
コード例 #6
0
ファイル: chouti.py プロジェクト: sishui198/Python_code
 def parse(self, response):
     print(response)  # response是下载的页面
     yield Request('http://www.cnblogs.com', callback=self.parse)
コード例 #7
0
 def start_requests(self):
     start_urls = ["http://www.cnblogs.com"]
     for url in start_urls:
         yield Request(url, callback=self.parse)
コード例 #8
0
 def parse(self, response):
     print(response.url)  # response是下載頁面
     yield Request(url="http://www.cnblogs.com", callback=self.parse)
コード例 #9
0
def load_xml_cases_dom(dom):
    # load cases from an already-parsed XML DOM
    cases = []
    param_map = {}
    for child in dom.getiterator():
        if child.tag != dom.getroot().tag and child.tag == "param":
            name = child.attrib.get("name")
            value = child.attrib.get("value")
            param_map[name] = value
        if child.tag != dom.getroot().tag and child.tag == "case":
            req = Request()
            wait = child.attrib.get("wait")
            if wait:
                req.wait = int(wait)
            else:
                req.wait = 0
            repeat = child.attrib.get("repeat")
            if repeat:
                req.repeat = int(repeat)
            else:
                req.repeat = 1
            for element in child:
                if element.tag.lower() == "url":
                    req.url = element.text
                if element.tag.lower() == "method":
                    req.method = element.text
                if element.tag.lower() == "body":
                    file_payload = element.attrib.get("file")
                    if file_payload:
                        req.body = open(file_payload, "rb").read()
                    else:
                        req.body = element.text
                if element.tag.lower() == "verify":
                    req.verify = element.text
                if element.tag.lower() == "regular_expressions":
                    req.regular_expressions = element.text
                if element.tag.lower() == "verify_negative":
                    req.verify_negative = element.text
                if element.tag.lower() == "timer_group":
                    req.timer_group = element.text
                if element.tag.lower() == "add_header":
                    # this protects against headers that contain colons
                    splat = element.text.split(":")
                    x = splat[0].strip()
                    del splat[0]
                    req.add_header(x, "".join(splat).strip())
            req = resolve_parameters(req, param_map)  # substitute vars
            cases.append(req)
    return cases
コード例 #10
0
 def start_requests(self):
     start_url = [
         'http://www.cnblogs.com',
     ]
     for url in start_url:
         yield Request(url, self.parse)
コード例 #11
0
ファイル: xmlparse.py プロジェクト: DrLoboto/pylt
def load_xml_cases_dom(dom):
    # load cases from an already-parsed XML DOM
    cases = []
    param_map = {}
    headers = []
    for child in dom.getiterator():
        if child.tag != dom.getroot().tag and child.tag == 'param':
            name = child.attrib.get('name')
            value = child.attrib.get('value')
            param_map[name] = value
        if child.tag != dom.getroot().tag and child.tag == 'case':
            req = Request()
            wait = child.attrib.get('wait')
            if wait:
                req.wait = int(wait)
            else:
                req.wait = 0
            repeat = child.attrib.get('repeat')
            if repeat:
                req.repeat = int(repeat)
            else:
                req.repeat = 1
            for element in child:
                if element.tag.lower() == 'url':
                    req.url = element.text
                if element.tag.lower() == 'method':
                    req.method = element.text
                if element.tag.lower() == 'body':
                    file_payload = element.attrib.get('file')
                    if file_payload:
                        req.body = open(file_payload, 'rb').read()
                    else:
                        req.body = element.text
                if element.tag.lower() == 'verify':
                    req.verify = element.text
                if element.tag.lower() == 'verify_negative':
                    req.verify_negative = element.text
                if element.tag.lower() == 'timer_group':
                    req.timer_group = element.text
                if element.tag.lower() == 'add_header':
                    headers.append(element.text)
            req = resolve_parameters(req, headers, param_map)  # substitute vars
            cases.append(req)
    return cases
コード例 #12
0
 def start_requests(self):
     start_urls = ["http://www.baidu.com", "http://www.bing.com"]
     for url in start_urls:
         yield Request(url, callback=self.parse)
コード例 #13
0
ファイル: xmlparse.py プロジェクト: qintang/pylot
def load_xml_cases_dom(dom):
    # load cases from an already-parsed XML DOM
    cases = []
    param_map = {}

    def dom_getiterator():
        if sys.version.startswith('3.9'):
            # https://blog.csdn.net/suhao0911/article/details/110950742
            return dom.iter()
        else:
            return dom.getiterator()

    for child in dom_getiterator():
        if child.tag != dom.getroot().tag and child.tag == 'param':
            name = child.attrib.get('name')
            value = child.attrib.get('value')
            param_map[name] = value
        if child.tag != dom.getroot().tag and child.tag == 'case':
            req = Request()
            repeat = child.attrib.get('repeat')
            if repeat:
                req.repeat = int(repeat)
            else:
                req.repeat = 1
            # support tenjin template engine
            tenjintag = child.attrib.get('tenjin')
            if tenjintag and tenjintag.lower() == 'true':
                req.tenjin = True

            for element in child:
                if element.tag.lower() == 'url':
                    req.url_str = element.text
                if element.tag.lower() == 'method':
                    req.method = element.text
                if element.tag.lower() == 'body':
                    file_payload = element.attrib.get('file')
                    if file_payload:
                        #req.body = open(file_payload, 'rb').read()
                        content_type, body = encode_multipart_formdata(
                            [], [('file', file_payload.split("/")[-1],
                                  open(file_payload, 'rb').read())])
                        req.add_header('content-type', content_type)
                        req.add_header('content-length', str(len(body)))
                        req.body_str = body
                        req.tenjin = False
                    else:
                        req.body_str = element.text
                if element.tag.lower() == 'verify':
                    req.verify = element.text
                if element.tag.lower() == 'verify_negative':
                    req.verify_negative = element.text
                if element.tag.lower() == 'timer_group':
                    req.timer_group = element.text
                if element.tag.lower() == 'add_header':
                    # this protects against headers that contain colons
                    splat = element.text.split(':')
                    x = splat[0].strip()
                    del splat[0]
                    req.add_header(x, ''.join(splat).strip())
                if element.tag.lower() == 'add_header_tenjin':
                    req.add_header_tenjin(TenjinEngine().renderFunction(
                        saveStrTemaplate(element.text)))
                if element.tag.lower() == 'add_headers_tenjin':
                    req.add_headers_tenjin(TenjinEngine().renderFunction(
                        saveStrTemaplate(element.text)))

            req = resolve_parameters(req, param_map)  # substitute vars
            # proces tenjin
            if req.tenjin:
                req.body = TenjinEngine().renderFunction(
                    saveStrTemaplate(req.body_str))
                req.url = TenjinEngine().renderFunction(
                    saveStrTemaplate(req.url_str))
            else:
                req.body = lambda: req.body_str
                req.url = lambda: req.url_str
            cases.append(req)
    return cases