多测试用例执行实例
from selenium import webdriver
from time import sleep
import unittest#导入对应的unittest框架或者模块
#unittest框架结构
#首先创建测试类:该类且要基础testcase类
class foo(unittest.TestCase):
def setUp(self):#setUp 初始化测试环境---setUp是用于用例初始化部分,在测试用例执行前,
# 在这个方法中的函数(脚本)将会先执行:如对浏览器操作。连接数据库等
self.dr=webdriver.Chrome()
self.dr.get('http:/www.baidu.com')
self.dr.maximize_window()
sleep(4)
#所有执行的测试用例:一个或者多个
def test_dcs(self):
driver = self.dr
driver.find_element_by_id('kw').send_keys(u'多测师')
driver.find_element_by_id('su').click()
sleep(6)
def test_dn(self):
driver = self.dr
driver.find_element_by_id('kw').send_keys(u'达内')
driver.find_element_by_id('su').click()
sleep(3)
def test_bdqn(self):
driver = self.dr
driver.find_element_by_id('kw').send_keys(u'北大青鸟')
driver.find_element_by_id('su').click()
sleep(3)
#tearDown:还原测试环境(没执行一个用例都会执行该方法,保证下一个用例执行的环境)
#tearDown该方法是在用例执行后调用:用来还原环境 如;关闭浏览器:退出数据库
def tearDown(self):
self.dr.quit()
#执行测试用例
if __name__=='__main__':
#用例集:即假设在百度中完成对多测师,达内,北大青鸟等机构的搜索
#构造测试用例集:可以理解成构造一个容器名字为suite后续将用例放在容器里面执行
suite=unittest.TestSuite()
suite.addTest(foo('test_dcs'))
suite.addTest(foo('test_dn'))
suite.addTest(foo('test_bdqn'))
uite.addTests([foo('test_dcs'),foo('test_dn'),foo('test_bdqn')])
#执行测试用例
t=unittest.TextTestRunner()
t.run(suite)
wb注释
‘wb’:只写打开或新建一个二进制文件;只允许写数据。
wb 只写打开或新建一个二进制文件;只允许写数据。
wb+ 读写打开或建立一个二进制文件,允许读和写。
ab+ 读写打开一个二进制文件,允许读或在文件末追加数据
测试报告实例
from selenium import webdriver
from time import sleep
import unittest#
import HTMLTestRunnerCN导入测试报告
class foo(unittest.TestCase):
def setUp(self):
self.dr=webdriver.Chrome()
self.dr.get('http:/www.baidu.com')
self.dr.maximize_window()
sleep(4)
def test_dcs(self):
driver = self.dr
driver.find_element_by_id('kw').send_keys(u'多测师')
driver.find_element_by_id('su').click()
sleep(6)
def test_dn(self):
driver = self.dr
driver.find_element_by_id('kw').send_keys(u'达内')
driver.find_element_by_id('su').click()
sleep(3)
def test_bdqn(self):
driver = self.dr
driver.find_element_by_id('kw').send_keys(u'北大青鸟')
driver.find_element_by_id('su').click()
sleep(3)
def tearDown(self):
self.dr.quit()
def suit():
suite = unittest.TestSuite()
suite.addTests([foo('test_dcs'), foo('test_dn'), foo('test_bdqn')])
return suite
if __name__=='__main__':
yy=suit()
html='c://SUZE.HTML'#指定报告路径
fp=file(html,'wb')#表示新建或者打开一个二进制的文件只允许写数据
run=HTMLTestRunnerCN.HTMLTestRunner(stream=fp,title=u'百度搜索报告',description=u'用例执行情况')
run.run(yy)
新开截图
第一步
注
C:/Users/Administrator/AppData/Local/YNote/data/qqF2624168B8924881AEBC98310BC05DB3/463d91c4c340426a8b5eea80ea8504c1/clipboard.png
第二步
C:/Users/Administrator/AppData/Local/YNote/data/qqF2624168B8924881AEBC98310BC05DB3/ecd9330f2a2741388cb5d13293ba39a2/clipboard.png
第三步
C:/Users/Administrator/AppData/Local/YNote/data/qqF2624168B8924881AEBC98310BC05DB3/af7372a9f0d04f62b5f54b95a3c94f6e/clipboard.png
python操作数据库
需要导入mysqldb的模块的库
cursor()我们连接数据库获取一个cursor游标(对象)我们可以通过该对象提供的方法
来完成我们的操作
方法包括两大类
1,执行sql语句
2,接受sql执行后的返回值
什么是游标?
游标:SQL的游标是一种临时的数据库对象,即可以用来存放在数据库表中的数据行副本,也可以指向存储在数据库中的数据行的指针,游标的一个常见用途就是保存查询结果,以便以后使用(游标是系统为用户开设的一个数据缓冲区,存放SQL语句的执行结果)
fetchone()该方法是返回单个的元祖,也就是一条记录,没有结果则返回None
fetchall()该方法是返回多个的元祖,也就是一条记录,没有结果则返回None
fetchmany(3)该方法是返回制定行数的,也就是一条记录,没有结果则返回None
这里的3则表示三行记录
execute():该方法用来执行sql语句
Python操作数据库
#coding:utf-8
import MySQLdb
db=MySQLdb.connect('192.168.81.129','root','123456','dcs32',charset='utf8')#链接数据库charset=处理中文问题
cursor=db.cursor()
#执行sql语句
cursor.execute("select name from dcs1 where id=2 ")
#提取执行后的结果
yy=cursor.fetchone()
print '%s'%yy
db.close()#关闭数据
数据库for循环
C:/Users/Administrator/AppData/Local/YNote/data/qqF2624168B8924881AEBC98310BC05DB3/30212bb720eb4ce895a894ab480feddb/%60_et0%7E2gd%60n%60bf%28yyxjg6%5De.png
数据库通过for循环增加数据
通过Python查看数据库内容
#coding:utf-8
import MySQLdb
db=MySQLdb.connect('192.168.81.129','root','123456','dcs32',charset='utf8')#链接数据库charset=处理中文问题
cursor=db.cursor()
#执行sql语句
cursor.execute("select name from dcs1 where id=2 ")
#提取执行后的结果
yy=cursor.fetchone()
print '%s'%yy
db.close()#关闭数据
通过pyhon对数据库操作之插入数据
2如何插入数据:用for循环
import MySQLdb
db=MySQLdb.connect("192.168.0.91","cqm","123456","dcs32",charset="utf8")
cursor=db.cursor()
for i in range(10):
sq='insert into fdcs32 (name,age,sex,class) values("x","1","1","1")'
cursor.execute(sq)
db.close()
3、插入不同的数据:用;隔开
import MySQLdb
db=MySQLdb.connect("192.168.0.91","cqm","123456","dcs32",charset="utf8")
cursor=db.cursor()
sq='insert into fdcs32 (name,age,sex,class) values("x","1","1","1");insert into fdcs32 (name,age,sex,class) values("xiaochen","1","1","1")'
cursor.execute(sq)
db.close()
写一个类包括数据库增删改查用unittest模块该断言的时候断言形成一个报告实例
from selenium import webdriver
from time import sleep
import unittest#导入对应的unittest框架或者模块
import HTMLTestRunnerCN
import MySQLdb
class foo(unittest.TestCase):
def setUp(self):
self.db=MySQLdb.connect('192.168.81.129', 'root', '123456', 'dcs32', charset='utf8')
sleep(2)
def test_zen(self):数据库之增
sef.cursor=self.db.cursor()
self.cursor.execute('insert into ccc(name) VALUES ("mm")')
def test_shan(self):删
self.cursor=self.db.cursor()
self.cursor.execute('delete from ccc where s_id=4')
def test_gai(self):改
self.cursor = self.db.cursor()
self.cursor.execute('update ccc set name="xiaoxaio" where s_id=13')
def test_cha(self): 查
self.cursor = self.db.cursor()
self.cursor.execute("select name from ccc where s_id='2' ")
# yy = self.cursor.fetchone()
def tearDown(self):
self.db.close()
def suit():
suite = unittest.TestSuite()
suite.addTest(foo("test_zen"))
suite.addTest(foo("test_shan"))
suite.addTest(foo("test_gai"))
suite.addTest(foo("test_cha"))
return suite
if __name__=='__main__':
yy=suit()
html='e://SUZE.HTML'#指定报告路径
fp=file(html,'wb')#表示新建或者打开一个二进制的文件只允许写数据
run=HTMLTestRunnerCN.HTMLTestRunner(stream=fp,title=u'用例执行报告',description=u'用例执行情况')
|
|