Case页的理念:
通过调用Page页填充好的定位信息来具体实施用例,比传统的编写自动化用例更加简洁,减少了多余的代码,如果以后开发将定位元素进行修改,我们也可以回到Page中修改定位元素,这样代码又可以复用了
1、首先要在Case页下创建test_move.py文件,并创建TestLogin类
2、准备好用那种方式做数据驱动(我比较喜欢CSV,因为简单),并设计好执行数据
准备好的三组数据–csv格式
下面话不多说直接上代码
import unittest
import ddt
import common.commons as common
from Base.base_page import Base
r = common.Common().ReadExcelTypeDict('a.xlsx') # 拿到具体的Excel表数据
@ddt.ddt #导入ddt模块
class TestLogin(unittest.TestCase):
@classmethod
def setUpClass(cls) -> None: # setupclass类方法 全部用例开始前执行一次
cls.logs = common.Common().get_logs() # 导入日志方法
cls.logs.debug('开始写入接口自动化测试用例')
@classmethod
def tearDownClass(cls) -> None:
cls.logs.debug('自动化接口用例结束')
def setUp(self) -> None:
self.logs.debug('开始本条接口用例')
def tearDown(self) -> None:
self.logs.debug('结束本条用例')
@ddt.data(*r) # 引入ddt模块,读取拿到的数据
def test_logins(self,pars): # 用例方法名开头必须已test pars参数为接收的表数据值
import json #导入json模块
dic = json.loads(pars['body参数值']) # 将Excel数据中的参数值转变为json格式
url = pars['接口地址'] # 拿到请求url
yuqi = pars['预期结果'] # 拿到预期结果
fs = pars['请求方式'] # 拿到请求方式
result = Base().requests_type(method = fs,url = url,data = dic) # 填充base页的请求api
self.assertIn(result.text,yuqi) # 进行断言 看用例是否通过
if __name__ == '__main__':
unittest.main()
将数据驱动,还有咱们封装好的方法,将引入其中来进行测试,这样不仅代码看起来很舒服,也很容易理解,有不足的地方还需要博友多多指点,活到老学到老