最全整理,web自动化测试框架总结-实战案例,从0精通封装

先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7

深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新软件测试全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上软件测试知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以添加V获取:vip1024b (备注软件测试)
img

正文

目录:导读

前言

web自动化测试框架

1、设计思路
使用Page Object模式将页面定位和业务操作分开,分离测试对象(元素对象)和测试脚本(用例脚本),一个页面建一个对象类,提高用例的可维护性;

使用yaml管理页面空间元素和测试用例数据。例如一个页面元素发生变化时,不需要去修改代码,只需要在对应的页面元素yaml文件中修改即可。

以每个页面作为模块管理,随时组装,互不影响。

2、测试框架分层

E1

框架层:基础组件封装,支撑整个框架的流程执行及功能扩展;
用例层:根据用例场景构造test测试方法;
业务层:封装页面对象类,一个页面建立一个类,业务层基础基础层page类;
基础层:二次开发selenium的元素定位已经操作;

3、编写用例方法
例子:百度搜索测试场景

①需要新增百度搜索测试场景用例:
在testyaml目录下新增一个页面对象yaml文件,利用封装的yamlload方法将yaml文件中的dom元素读取出来,提供给封装页面对象类调用并定元素操作。

testinfo:

  • id: test_login001
    title: 登录百度网页测试
    info: 打开百度首页
    testcase:
  • element_info: s-usersetting-top
    find_type: ID
    operate_type: click
    info: 打开登录对话框
  • element_info: userName
    find_type: ID
    operate_type: send_keys
    info: 输入用户名称
  • element_info: TANGRAM__PSP_11__password
    find_type: ID
    operate_type: send_keys
    info: 输入密码
  • element_info: TANGRAM__PSP_11__submit
    find_type: ID
    operate_type: click
    info: 单击登录按钮

check:

  • element_info: //*[@id=“user”]/span[2]
    find_type: XPATH
    info: 检查用户是否登录

②在testdata目录下新增一个yaml文件提供给用例测试数据

id: test_login001.1
detail : 验证登录成功
screenshot : phone_pawd_empty
data:
username: 13501198450
password: Han520520
check :

  • hhil833

③在page_obj目录编写百度搜索场景的页面对象类封装

testData = getyaml(setting.TEST_Element_YAML + ‘/’ + ‘baidu_login.yaml’)
class baidu_login(Page):

def open_login(self,username,pwd):
“”"

:return:
“”"
dig_login_button_loc = (By.ID, testData.get_elementinfo(0))
self.find_element(*dig_login_button_loc).click()
sleep(1)
def go_login(self,username,pwd):
self.find_element(By.ID, testData.get_elementinfo(1)).send_keys(username)
sleep(1)
self.find_element(By.ID, testData.get_elementinfo(2)).send_keys(pwd)
sleep(1)
self.find_element(By.ID, testData.get_elementinfo(3)).click()

def user_login(self, username, pwd):
self.go_login(username,pwd)
sleep(1)
check = (By.ID, By.ID,testData.get_CheckElementinfo(0))
return self.find_element(*check).text

④在testcase目录编写测试用例文件,采用ddt数据驱动读取yaml测试数据源文件

@ddt.data(*testData)
def user_login_verify(self, username, password):
“”"
用户登录
:param phone: 手机号
:param password: 密码
:return:

“”"

baidu_login(self.driver).user_login(username,password)
def test_login(self,datayaml):
“”"
登录测试
:param datayaml: 加载login_data登录测试数据
:return:
“”"
self.log.info(“当前执行测试用例ID-> {0} ; 测试点-> {1}”.format(datayaml[‘id’],datayaml[‘detail’]))

c = self.user_login_verify(datayaml[“username”],datayaml[“password”])

log.info(“检查点-> {0}”.format©)

self.assertEqual(c, datayaml[‘check’][0],

“成功登录,返回实际结果是->: {0}”.format©)

⑤通过多线程将驱动传给执行方法,并行开启多个浏览器执行测试

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注软件测试)
img

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
术提升。**

需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注软件测试)
[外链图片转存中…(img-3fYL6EzE-1713564849916)]

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 20
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值