关于参数化和测试框和架

	参数化中我们可以将数据写在列表中也可hho以将数据写在txt文件中或者csv文件中,csv文件更加快捷,代码也更加容易理解。
 首先将数据放在一一个列表中,其次通过遍历的方式获取每一个值,其次每次返回到百度的首页
 def search_test(self):
         test_data = ['千锋教育','','selenium']
         for i in range(len(test_data)):
         dr.get("https://www.baidu.com/")
         self.dr.find_element_by_id('kw').send_keys(test_data[i])
    self.dr.find_element_by_id('su').click()

以上就简单的通过python来实现简单的参数化,在实际的生活中不可能把数据写死,需要更加灵活的运用,将数据放在txt文件中或者csv文件中,通过文件的读写的方式来实现参数化。
以下是实例代码:

     def search_test(self):
         data = ReadFile().read_txt('./test_data/test1.txt')
         for i in data:
            test_data = i.split(',')
            self.dr.get("https://www.baidu.com/")
            self.dr.find_element_by_id('kw').send_keys(test_data[0])
             self.dr.find_element_by_id('su').click()
             sleep(3)
            result = self.dr.title
           if result == test_data[1]:
                print("搜索测试:成功!")
            else:
                 print("搜索测试:失败!")

以上代码是通过文件的读写的方式来获取数据,源码是

data= ReadFile().read_txt('./test_data/test1.txt')

在这里文件的读写是另一个模块,把他的数据读出来,然后赋给data下面具体的文件读写的方式

with open ('1.txt','r',encoding='utf8') as f:
content=f.rend().splitlines()
return content

下面是csv的文件的读的方式,因为csv返回的是一个列表的方式所以要通过使用循环的方式来获取值

with ('1.txt','r',encoding='utf8') as f:
content=csv.reader(f)
for i in content:
return content

以上文件的读的方式添加了return 是为了调用时方便使用
下面是csv的格式的
def search_test(self):
datas = ReadFile().read_csv(’./test_data/test1.csv’)
for i in datas:
self.dr.get(“https://www.baidu.com/”)
self.dr.find_element_by_id(‘kw’).send_keys(i[0])
self.dr.find_element_by_id(‘su’).click()
sleep(3)
result = self.dr.title
if result == i[1]:
print(“搜索测试:成功!”)
else:
print(“搜索测试:失败!”)
#上面的代码家里断言
csv的文件
def search_test(self):
datas = ReadFile().read_csv(’./test_data/test1.csv’)
for i in datas:
self.dr.get(“https://www.baidu.com/”)
self.dr.find_element_by_id(‘kw’).send_keys(i[0])
self.dr.find_element_by_id(‘su’).click()
sleep(3)
result= self.dr.title
#获取页面的title
单元测试框架 Python unittest
单元测试的五个部分
testcase :测试用例
testload :测试装载
testsuite: 测试套件
testrunner:测试执行
testresul:测试结果
testlaod 将testtestcase 装载到testsuite中
然后执行testrunner 最后结果testresul
在实行测试的时候,需要导包import unittest
class Test(unittest.testCase)有四个内置的方法,内置的方法跟所处的位置没有任何的关系
下面是四个内置的方法以及test

 @classmethod#注解必须加,不然会出错
 def setUpClass(cls)#最开始执行的,且只执行一次
 def setup (self)#在setupclass 之后,test方法之前执行,有几个test方法就执行几次
 def test(self) #测试方法的运行顺序跟位置没有关系,跟他方法名的名称的asccl有关,从小到大,必须是test开头的方法名字
 def tearDown(self):#在test之后,多少个test方法就执行几次,如果有多个test测试方法。就执行几次
 @classmethod#必须加这个注解,否则会报错
 def teardowncalss (cls)#最后执行,且只执行一次。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值