zoukankan      html  css  js  c++  java
  • [笨方法学python]习题51自动化测试笔记

    习题51

    本节自动化测试部分看不大懂,自己每步都打印出来,帮助理解。(代码标红部分为自己加入调试为打印变量值所用

    tests/tools.py

    from nose.tools import *

    import re

    def pt(resp,contains=None,matches=None,headers=None,status=None):               

      print 'resp:'.resp

      print ' resp.data:',resp.data               #个人加入调试,为打印出每次调用变量值

      print 'contains:',contains

      print 'matches:',matches

      print 'headers:',headers

      print 'status:',status

      print '******************************************************************'

    def assert_response(resp, contains=None, matches=None, headers=None, status="200"):

        assert status in resp.status, "Expected response %r not in %r" % (status, resp.status)

        if status == "200":

            assert resp.data, "Response data is empty."

        if contains:

            assert contains in resp.data, "Response does not contain %r" % contains

        if matches:

            reg = re.compile(matches)

            assert reg.matches(resp.data), "Response does not match %r" % matches

        if headers:

            assert_equal(resp.headers, headers)

    tests/app_tests.py

    from nose.tools import *

    from bin.app import app

    from tests.tools import assert_response

    from tests.tools import pt                                              #个人加入调试,为打印出每次调用变量值

    def test_index():

        # check that we get a 404 on the / URL

        resp = app.request("/")

        assert_response(resp, status="404")

        pt(resp)                        #个人加入调试,为打印出每次调用变量值

        # test our first GET request to /hello

        resp = app.request("/hello")

        assert_response(resp)

        pt(resp)                        #个人加入调试,为打印出每次调用变量值

        # make sure default values work for the form

        resp = app.request("/hello", method="POST")

        assert_response(resp, contains="Nobody")

        pt(resp)                         #个人加入调试,为打印出每次调用变量值

        # test that we get expected values

        data = {'name': 'Zed', 'greet': 'Hola'}

        resp = app.request("/hello", method="POST", data=data)

        assert_response(resp, contains="Zed")

        pt(resp)                         #个人加入调试,为打印出每次调用变量值

    test_index()                      #个人加入调试,为打印出每次调用变量值

    我将每一次调用assert_response(),各个变量的值打印出来:(**********表示第一次调用结束)

    resp: <Storage {'status': '404 Not Found', 'headers': {'Content-Type': 'text/html'}, 'header_items': [('Content-Type', 'text/html')], 'data': 'not found'}>

    resp.data: not found

    contains: None

    matches: None

    headers: None

    status: None

    ********************************************************

    resp: <Storage {'status': '200 OK', 'headers': {'Content-Type': 'text/html; charset=utf-8'}, 'header_items': [('Content-Type', 'text/html; charset=utf-8')], 'data': '<h1>Fill Out This Form</h1> <form action="/hello" method="POST">     A Greeting: <input type="text" name="greet">     <br/>     Your Name: <input type="text" name="name">     <br/>     <input type="submit"> </form> '}>

    resp.data: <h1>Fill Out This Form</h1>

    <form action="/hello" method="POST">

        A Greeting: <input type="text" name="greet">

        <br/>

        Your Name: <input type="text" name="name">

        <br/>

        <input type="submit">

    </form>

    contains: None

    matches: None

    headers: None

    status: None

    ********************************************************

    resp: <Storage {'status': '200 OK', 'headers': {'Content-Type': 'text/html; charset=utf-8'}, 'header_items': [('Content-Type', 'text/html; charset=utf-8')], 'data': ' I just wanted to say <em style="color: green; font-size: 2em;">Hello, Nobody</em>. '}>

    resp.data:

    I just wanted to say <em style="color: green; font-size: 2em;">Hello, Nobody</em>.

    contains: None

    matches: None

    headers: None

    status: None

    ********************************************************

    resp: <Storage {'status': '200 OK', 'headers': {'Content-Type': 'text/html; charset=utf-8'}, 'header_items': [('Content-Type', 'text/html; charset=utf-8')], 'data': ' I just wanted to say <em style="color: green; font-size: 2em;">Hola, Zed</em>. '}>

    resp.data:

    I just wanted to say <em style="color: green; font-size: 2em;">Hola, Zed</em>.

    contains: None

    matches: None

    headers: None

    status: None

    ********************************************************

    ___________________________________________________

    assert断言语句

    assert  1==2,‘不等于!’

    若表达式为真则无回显,若不为真,则抛出异常。

    app.request("/"):为发送一个url请求后,值为服务器返回的响应。

  • 相关阅读:
    单链表
    顺序表
    关于传输协议的简单了解
    URL/URI/URN
    点击图片弹出轮播图 -- 插件
    nodeJs中系统模块的常用方法和自定义模块暴露
    Buffer
    Sublime Text 3 安装Package Control
    npm的简单使用
    scrollTop()和document.body.scrollTop的区别
  • 原文地址:https://www.cnblogs.com/4wheel/p/8401864.html
Copyright © 2011-2022 走看看