找回密码
 立即注册

推荐阅读

  • 便民服务
  • 关注我们
  • 社区新手

断言,unittest框架,数据库连接

[复制链接]
常见的断言
1、assertequal
2、assertnotequal
3、assertFalse
4、assertTrue
5、assertNone
6、assertnotNone
#获取文本值
text=dr.find_element_by_xpath('//*[@id="u1"]/a[1]').text

#使用assert False进行断言
if not (text==u'新闻'):
    assert False#只要触发这个,下面不会再执行
dr.find_element_by_id('kw').send_keys(u'首付款发')
#获取value
a=dr.find_element_by_id('su').get_attribute('value')
print a
#使用assert False进行断言
if not (a==u'百度一下'):
    assert False
Unittest是Python自带的框架
使用unittest框架执行用例的优点:提供用例组织方法和用例执行方法,
提供丰富的日志和清晰的用例执行后的测试报告
Unittest中包括:TestCase类
TestSuite类
TextTestRunner
使用unittest框架执行用例时,对我们的用例命名有一定的要求,因为我们的测试类都是以test开头,那么我们的测试用例同样要以test打头进行命名
import unittest#导入unittest框架包
#unittest框架结构
#首先创建测试类,该类且要继承TestCase
class foo(unittest.TestCase):
    #初始化测试环境,相当于构造函数
    def setUp(self):
        pass
    #所有执行的用例一个或者多个
    def test_login(self):
        pass
    def test_info(self):
        pass
    #还原测试环境(每执行一个用例都会执行该方法,保证下一个用例执行的环境)
    def tearDown(self):
        pass
#执行测试用例
if __name__ == '__main__':
    unittest.main()
import unittest#导入unittest框架包
#unittest框架结构
#首先创建测试类,该类且要继承TestCase
class foo(unittest.TestCase):
    #初始化测试环境,相当于构造函数
    #setUp是用于设置用例初始化部分,在测试用例执行前,
    #这个方法中的函数(脚本)将先会执行如:对浏览器操作,连接数据库等
    def setUp(self):
        self.dr=webdriver.Chrome()
        self.dr.get('http://www.baidu.com')
        self.dr.maximize_window()
        sleep(2)
    #所有执行的用例一个或者多个
    def test_1(self):
        self.dr.find_element_by_id('kw').send_keys(u'多测试')
        self.dr.find_element_by_id('su').click()
        sleep(2)
    def test_2(self):
        self.dr.find_element_by_id('kw').send_keys(u'达内')
        self.dr.find_element_by_id('su').click()
        sleep(2)
    def test_3(self):
        self.dr.find_element_by_id('kw').send_keys(u'北大青鸟')
        self.dr.find_element_by_id('su').click()
        sleep(2)

    #还原测试环境(每执行一个用例都会执行该方法,保证下一个用例执行的环境)
    #tearDown该方法是在用例执行后调用,主要用来还原环境如:退出浏览器,关闭数据库等
    def tearDown(self):
        self.dr.quit()
#执行测试用例
# if __name__ == '__main__':
#     unittest.main()

# 用例集
# 在百度中完成对多测试,达内,北大青鸟等机构搜索
#先要

if __name__ == '__main__':
    # 构造测试用例集:可以理解为构造一个容器名字为suite后续将用例放在该容器执行
    suite=unittest.TestSuite()
    suite.addTests([foo('test_1'),foo('test_2'),foo('test_3')])
    # suite.addTest(foo('test_dn'))
    # suite.addTest(foo('test_bd'))
    #执行用例
    t=unittest.TextTestRunner()
    t.run(suite)
报告:先到网上下载模板放到lib目录下
import HTMLTestRunnerCN
注:‘wb’:只写打开或新建一个二进制文件;只允许写数据。
       wb 只写打开或新建一个二进制文件;只允许写数据。
       wb+ 读写打开或建立一个二进制文件,允许读和写。
       ab+ 读写打开一个二进制文件,允许读或在文件末追加数据。
Python操作数据库
需要先导入mysqldb模块
Cursor():连接数据库获取一个cursor()游标(对象),我们可以通过该对象提供的方法                        来完成我们的操作
方法包括两大类:1、执行sql语句  2、接收sql执行后的返回值
什么是游标?
游标:SQL的游标是一种临时的数据库对象,即可以用来存放在数据库表中的数据行副本,也可以指向存储在数据库中的数据行的指针,游标的一个常见用途就是保存查询结果,以便以后使用(游标是系统为用户开设的一个数据缓冲区,存放SQL语句的执行结果)
fetchone():该方法是返回单个的元组,也就是一条记录,没有结果则返回None
Fetchmany(3)该方法是返回指定行的数据记录,也就是一条记录,没有结果则返回None,这里的3表示数据库中前3行记录
execute():该方法用于执行sql语句

分享至 : QQ空间
收藏

0 个回复

您需要登录后才可以回帖 登录 | 立即注册