Robot Framework自动化测试基础实战课程 2

知识点--自动化测试与Robot Framework

  • 自动化测试的重要性
  • 了解什么是 TDD、BDD、ATDD
  • 为什么选择Robot Framework

自动化测试的重要性

互连网软件产品中测试的重要性不亚于开发,尤其当架构越复杂时,子系统之间的耦合跟交互常常是影响业务端使用者体验的关键因素,自动化测试也是 DevOps 工具链中不可或缺的一环,可以说没有自动测试就无法有效率维护代码品乃至于产品质量。

下图的软体测试金字塔解释了现代软体开发测试的大类别,越底层的类别应该涵盖越细致的粒度

软体测试金字塔

Unit Tests / Component Tests (单元测试):

基本上需要测试代码级别的功能是否如预期,函式的输入输出是否有问题、容错处理以及灾难恢复等逻辑,python 原生的unittest就是个完整的单元测试框架。

Integration Tests (整合测试)

现在的软体日趋复杂,如 GUI、资料库、Web 应用过于关注单元测试可能带来额外工作负担,整合测试专注在系统各元件的沟通是否如预期,进而确定元件之间的 Protocol (协定)是否正确。

Acceptance Tests (验收测试)

验收测试是系统行为与功能面的规范,用来说明某一个 user story,系统在特定情况下应该完成什麽样功能,以及针对某一些输入,应该具备怎样的输出结果。更重要的是,是从使用者的角度来检视,系统是否能正常运作(是否符合使用者的期望)。 一般来说需要 PM、RD、QA 坐下来一起讨论制定。

UI Tests (用户介面测试)

以Web应用而言用户介面攸关产品成败,除了使用整合测试确认页面上的 DOM、JavaScripts 都正常运作,更重要的是要确保页面在不同的浏览器、不同电脑跟手机屏幕上都正常显示,这时候需要真正在浏览器上操作并反馈问题,当然这些过程也都可以自动化,如老牌的Selenium就是广泛使用的 Web 测试框架,而移动 APP 介面测试则有appium

Manual Tests (手动测试)

上面谈论的四个测试方法都可以自动化,为什么依然需要手动测试呢?因为绝大部分的系统都无法达到 100% 的 Test Coverage (测试涵盖度),尤其是加上大幅度改版时某些特别关键的功能还是需要 QA 手动确认。

什么是 TDD、BDD、ATDD

TDD

Test Driven Development(测试驱动开发)有别于传统技术人员开发常常一头钻进去撰写代码,TDD 鼓励在接收到功能需求时优先思考如何测试,譬如网站登入功能必须区分用户是否曾经注册、登入失败显示的讯息、失败次数过多时(可能是攻击行为)的措施等,TDD 常常拿来跟 User Story(用户叙述)一起使用,经由整体思考测试流程后再投入程序开发,减少开发途中遗漏重要功能。

BDD

Behavior Driven Development (行为驱动开发)是一种敏捷软体开发的技术,它鼓励软体项目中的开发者、QA和非技术人员或商业参与者之间的协作。主要是从用户的需求出发,强调系统行为。BDD最初是由 Dan North 命名,它包括验收测试和客户测试驱动等的极限编程的实践,作为对测试驱动开发的回应,这篇文章是 Dan North 本人对于 BDD 提出的实例。

ATDD

Aceptance Test Driven Development (验收测试驱动开发)

TDD基本上只跟开发人员有关,如果对功能需求理解错误,还是会浪费不少时间资源,所以用户/PM、RD、QA需要坐下来一起讨论制定验收 Test Case (测试案例),ATDD的重点不在 How (如何完成功能),而是 What (要达到什么功能),更重要的是测试案例是使用者最后要验收的方式,所以使用者要看的懂,这也是本实验介绍 Robot Framework 的主因。

为什么选择 Robot Framework

Robot Framework是基于python的测试框架,基本上python能做到的事情它都能做到,既然如此为什么我们不直接使用python呢? 因为ATDD主要主角是没有技术经验的用户,怎么利用好懂的自然语言让用户可以参与到测试流程之中就是Robot Framework 的一大卖点。

Robot Framework 简单来说就是一个让你撰写 keyword driven script 的 framework. 根据你想做的事情引入不同的 library 之后,就能使用各种 keyword 拼凑完成的工作。如果没有现成的 library 或 keyword 就自己写即可。例如 python 的 HTTP requests:

import requests

url = 'http://shiyanlou.com/'
resp = requests.get(url)
print resp.status_code  # 200

改用Robot Framework就可直接引入 RequestsLibrary 里面的关键字完成一样的步骤:

*** Settings ***
Library  RequestsLibrary

*** Test Cases ***
Post request
    Create Session  session  http://shiyanlou.com
    ${resp} =  Get Request  alias=my_session   uri=/
    Log To Console    ${resp.status_code}

关键字撰写出来的语法十分易懂,下面是个测试网站登入页的测试案例,执行后 Robot Framework 会打开浏览器并且输入帐号密码,预期会看到登入成功后的欢迎页,最后把浏览器关掉恢复原始状态,是不是很简单呢? 后面的实验会开始实作 Robot Framework ,发掘更多好用功能!

*** Test Cases ***
Valid Login
    Open Browser To Login Page
    Input Username    ${username}
    Input Password    ${password}
    Push Summit Button
    Welcome Page Should Be Open
    [Teardown]    Close Browser
Python网络爬虫与推荐算法新闻推荐平台:网络爬虫:通过Python实现新浪新闻的爬取,可爬取新闻页面上的标题、文本、图片、视频链接(保留排版) 推荐算法:权重衰减+标签推荐+区域推荐+热点推荐.zip项目工程资源经过严格测试可直接运行成功且功能正常的情况才上传,可轻松复刻,拿到资料包后可轻松复现出一样的项目,本人系统开发经验充足(全领域),有任何使用问题欢迎随时与我联系,我会及时为您解惑,提供帮助。 【资源内容】:包含完整源码+工程文件+说明(如有)等。答辩评审平均分达到96分,放心下载使用!可轻松复现,设计报告也可借鉴此项目,该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的。 【提供帮助】:有任何使用问题欢迎随时与我联系,我会及时解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 下载后请首先打开README文件(如有),项目工程可直接复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用。
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
各种安全相关思维导图整理收集。渗透步骤,web安全,CTF,业务安全,人工智能,区块链安全,数据安全,安全开发,无线安全,社会工程学,二进制安全,移动安全,红蓝对抗,运维安全,风控安全,linux安全.zip项目工程资源经过严格测试可直接运行成功且功能正常的情况才上传,可轻松复刻,拿到资料包后可轻松复现出一样的项目,本人系统开发经验充足(全领域),有任何使用问题欢迎随时与我联系,我会及时为您解惑,提供帮助。 【资源内容】:包含完整源码+工程文件+说明(如有)等。答辩评审平均分达到96分,放心下载使用!可轻松复现,设计报告也可借鉴此项目,该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的。 【提供帮助】:有任何使用问题欢迎随时与我联系,我会及时解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 下载后请首先打开README文件(如有),项目工程可直接复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用。
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值