楼下老大爷都能看懂的python3+selenium自动化测试框架

首先你得知道什么是Selenium? 
Selenium是一个基于浏览器的自动化测试工具,它提供了一种跨平台、跨浏览器的端到端的web自动化解决方案 。Selenium主要包括三部分:Selenium IDE、Selenium WebDriver 和Selenium Grid 。
 

  • Selenium IDE:Firefox的一个扩展,它可以进行录制回放,并把录制的操作以多种语言(例如JAVA、Python等)的形式导出成测试用例 。
  • Selenium WebDriver:提供Web自动化所需的API,主要用作浏览器控制、页面元素选择和调试 。不同的浏览器需要不同的WebDriver 。
  • Selenium Grid:提供了在不同机器的不同浏览器上运行selenium测试的能力 。
 
下面我会使用思维导图目录结构介绍基础测试框架,编写测试用例进行功能测试用例,希望对你的学习有所帮助 。
 
点我领取全套软件测试自动测试全栈资料教学视频
 
楼下老大爷都能看懂的python3+selenium自动化测试框架

文章插图
 

楼下老大爷都能看懂的python3+selenium自动化测试框架

文章插图
 
?
 
设计思路
 
框架采用python3 + selenium3 + PO + yaml + ddt + unittest等技术编写成基础测试框架,能适应日常测试工作需要 。
 
1、使用Page Object模式将页面定位和业务操作分开,分离测试对象(元素对象)和测试脚本(用例脚本),一个页面建一个对象类,提高用例的可维护性;
 
2、使用yaml管理页面控件元素数据和测试用例数据 。例如元素ID等发生变化时,不需要去修改测试代码,只需要在对应的页面元素yaml文件中修改即可;
 
3、分模块管理,互不影响,随时组装,即拿即用 。
 
测试框架分层设计
楼下老大爷都能看懂的python3+selenium自动化测试框架

文章插图
 
?
楼下老大爷都能看懂的python3+selenium自动化测试框架

文章插图
 
把常见的操作和查找封装成基础类,不管是什么产品,可直接拿来复用
 
  • 业务层主要是封装对象页面类,一个页面建一个类,业务层页面继承基础层
  • 用例层针对产品页面功能进行构造模拟执行测试
  • 框架层提供基础组件,支撑整个流程执行及功能扩展,给用例层提供各页面的元素数据、用例测试数据,测试报告输出等
  • ?
 
测试框架目录结构
楼下老大爷都能看懂的python3+selenium自动化测试框架

文章插图
 
?
楼下老大爷都能看懂的python3+selenium自动化测试框架

文章插图
 
如下思维导图目录结构介绍:
楼下老大爷都能看懂的python3+selenium自动化测试框架

文章插图
 
?
楼下老大爷都能看懂的python3+selenium自动化测试框架

文章插图
 
编写用例方法
 
如果对软件测试、接口测试、自动化测试、面试经验交流 。感兴趣可以关注我个人公众号:程序员一凡,公众号内会有不定期的发放免费的资源链接,这些资料都是从各个技术网站搜集、整理出来的,如果你有好的学习资料可以私聊发我,我会注明出处之后分享给大家
楼下老大爷都能看懂的python3+selenium自动化测试框架

文章插图
 

楼下老大爷都能看懂的python3+selenium自动化测试框架

文章插图
 
?
 
testinfo:- id: test_login001title: 登录测试info: 打开抽屉首页testcase:- element_info: login-link-afind_type: IDoperate_type: clickinfo: 打开登录对话框- element_info: mobilefind_type: IDoperate_type: send_keysinfo: 输入手机号- element_info: mbpwdfind_type: IDoperate_type: send_keysinfo: 输入密码- element_info: //input[@class='keeplogin']find_type: XPATHoperate_type: clickinfo: 单击取消自动登录单选框- element_info: //span[text()='登录']find_type: XPATHoperate_type: clickinfo: 单击登录按钮- element_info: userProNickfind_type: IDoperate_type: performinfo: 鼠标悬停账户菜单- element_info: //a[@class='logout']find_type: XPATHoperate_type: clickinfo: 选择退出check:- element_info: //div[@class='box-mobilelogin']/div[1]/spanfind_type: XPATHinfo: 检查输入手机号或密码,登录异常提示- element_info: userProNickfind_type: IDinfo: 成功登录- element_info: reg-link-afind_type: IDinfo: 检查退出登录是否成功login.yaml


推荐阅读