[笨方法学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>\n\n<form action="/hello" method="POST">\n    A Greeting: <input type="text" name="greet">\n    <br/>\n    Your Name: <input type="text" name="name">\n    <br/>\n    <input type="submit">\n</form>\n'}>

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': '\nI just wanted to say <em style="color: green; font-size: 2em;">Hello, Nobody</em>.\n'}>

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': '\nI just wanted to say <em style="color: green; font-size: 2em;">Hola, Zed</em>.\n'}>

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请求后,值为服务器返回的响应。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏大内老A

ASP.NET Web API的Controller是如何被创建的?

Web API调用请求的目标是定义在某个HttpController类型中的某个Action方法,所以消息处理管道最终需要激活目标HttpController对...

42950
来自专栏程序你好

在c#中,如何序列化/反序列化一个字典对象?

.Net提供的各种序列化的类,通过使用这些类,. Net对象的序列化和反序列化变得很容易。但是字典对象的序列化并不是那么容易。为此,您必须创建一个能够序列化自身...

12610
来自专栏全栈之路

golang教程

这里有两个关键点。 - 其一是defer关键字。defer语句的含义是不管程序是否出现异常,均 在函数退出时自动执行相关代码。 - 其二是Go语言的函数允许返回...

67920
来自专栏java一日一条

50个常见的 Java 错误及避免方法(第二部分)

System.out.println("Whatdo you want to do?");

12530
来自专栏pangguoming

C#异步编程

17430
来自专栏用户2442861的专栏

Java面试题全集(上)

http://blog.csdn.net/jackfrued/article/details/44921941

15220
来自专栏小狼的世界

Linux下不同文件编码的转换

字符编码(Character Encoding)可以说就是让某一字符序列匹配一个指定集合中的某一东西,常见的例子包括长短电键组合起来表示的摩斯电码(Morse ...

12320
来自专栏Jerry的SAP技术分享

Java异常处理:如何写出“正确”但被编译器认为有语法错误的程序

文章的标题看似自相矛盾,然而我在“正确”二字上打了引号。我们来看一个例子,关于Java异常处理(Exception Handling)的一些知识点。

14130
来自专栏熊二哥

快速入门系列--CLR--03泛型集合

.NET中的泛型集合 在这里主要介绍常见的泛型集合,很多时候其并发时的线程安全性常常令我们担忧。因而简述下.NET并发时线程安全特性,其详情请见MSDN。 ...

18870
来自专栏康怀帅的专栏

PHP 变量与常量

本文介绍了 PHP 变量与常量。 官方文档:http://php.net/manual/zh/language.variables.php 官方文档:http:...

31640

扫码关注云+社区

领取腾讯云代金券