通过上次的运行,大家应该已经发现了,就是我们写了三个用例,那么在测试报告中setUp和tearDown方法分别运行了三次.没错,这也就是说,每次运行用例之前都会运行setUp和tearDown方法.今天我们就来具体的说一下unittest模块是如何运行所有的用例的: 先写如下用例: # coding: utf-8 import unittest import time class MyTest(unittest.TestCase): def setUp(self): print "SetUp&q…
今天是unittest最后一讲,我们解决一下如何只运行一次setUp和tearDown方法以及简单的数据驱动的知识. 1.只运行一次setUp和tearDown方法 很简单,只需要把setUp和tearDown分别替换为setUpClass和tearDownClass即可,但是用这两个方法必须加上 @classmethod 修饰 # coding: utf-8 import unittest import time class MyTest(unittest.TestCase): @classm…
我们先来简单介绍一下unittest框架,先上代码,跟住了哦~~ 1.建立如下结构的文件夹: 注意,上面的文件夹都是package,也就是说你在new新建文件夹的时候不要选directory,而是要选package: 建好了文件夹,第一步就算完成啦! 2.第二步,我们先来说一下面向对象的思想 面向对象,很简单,你需要先找一个女朋友/男朋友……咳咳,跑题了.面向对象,就是把所有的功能都当做单独的模块,模块之间的耦合(就是关联)度越低,那么你的结构越好,当你需要这些功能时,你只需要去调用相应的模块即…
读取Excel表格中的内容,不多说,直接上代码: # coding: utf-8 import xlrd # excel路径 excel_path = r'C:\Users\weiming\Desktop\Inter\data\test_case_merchant_basic.xlsx' # 打开Excel data = xlrd.open_workbook(excel_path) # 查看Excel中的sheet名称 data.sheet_names() # 通过索引或表名获取第一个工作表:一…
Logging:日志记录是为了跟踪记录软件运行时,发生的事件,包括出错,提示信息等等. log日志级别:日志级别大小关系为:CRITICAL > ERROR > WARNING > INFO > DEBUG > NOTSET:模块默认级别为WARNING,即当且仅当等于或高于WARNING的事件会被记录下来,其余的忽略不计. 1.打印到屏幕: import logging logging.warn("this logging warn") logging.…
今天我们来学习python里面的“装饰器” 1.我在函数test运行前想先打印一些内容怎么办? def func(param):    print u"打印的内容"    param() def test():    print u"test内容" func(test) 以上代码即可实现,但是如果我有很多函数都要运行前先打印同样的内容,一个一个的去写就会显得非常笨拙.所以有必要有一个方法,只要通过一定的方式即可实现“调用”. 2.闭包 先看一段代码 def clos…
今天的东西很少,主要是给自己做个笔记,顺便帮大家普及一下Python中的边角知识: 1.if __name__ == "__main__"是什么意思 答:一个.py文件,如果是自身在运行,那么他的__name__值就是"__main__":如果它是被别的程序导入的(作为一个模块),比如:import unittest那么,他的__name__就不是"__main__"了.所以,在.py文件中使用这个条件语句,可以使这个条件语句块中的命令只在它独立…
smtplib发送邮件最后一篇,发送带图片的邮件: 大家可以去廖雪峰的网站看一下,下面的代码就是我跟着博客写的,哈哈,大家即使不明白为什么,也要多写两遍,记在心里,如果有不明白的地方可以留言,船长会第一时间给大家解决:今天有朋友让我建一个QQ群,我想现在还不是建群的时候,因为大家基本上没有什么问题,如果以后问题多了,我会建一个群,来集中解决大家的问题,谢谢大家的支持!开撸吧~~~ # coding: utf-8 import smtplib from email.mime.multipart i…
千里之行,始于足下.把别人的变成自己,再把自己的分享给别人,这也是一次提升的过程.本文的目的是以一篇文章从整体把握集合体系又不失一些细节上的实现,高手路过. 集合的作用与特点 Java是一门面向对象语言,数据多了用对象封装存储(比如,人有姓名.年龄.性别等数据信息,我们就抽象一个Person对象来封装存储),对象多了又用什么来存储呢?集合,集合就是用来存储对象的. 集合的特点就是适用于存储对象而且可以存储不同类型的对象,集合的长度是可变的. 集合框架图 个模块来学习: 1.Collection集…
我先给大家补充一个用QQ发送纯文本电子邮件的代码,用QQ的朋友可以参考一下: # coding=utf-8 import smtplib from email.mime.text import MIMEText mail_host = “smtp.qq.com” receivers = “123@qq.com” sender = “456@qq.com” passwd = ‘QQ邮箱的授权码’ contents = “python发送邮件” # 构造邮件正文 msg=MIMEText(conte…