既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上软件测试知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
Edit->Settings部分:
有时候Settings是隐藏的,点击settings按钮显示。
Documentation:文档,每一项都有。可以给当前的对象写一些文档说明。
Suite Setup:指的是测试套件启动的时候就执行某个关键字。(例:我在Suite Setup设置了Sleep | 5sec,表示等待5秒,要注意关键字的参数要使用|分隔)
Suite Teardown:指的是测试套件结束的时候就执行某个关键字。
Test Setup:指的就是案例启动的时候执行某个关键字。
Test Teardown:指的就是案例结束的时候执行某个关键字。
Test Template:测试模版,这是可以指定某个关键字为这个测试套件下所有TestCase的模版,这样所有的TestCase就只需要设置这个关键字的传入参数即可。
Test Timeout:设置每一个测试案例的超时时间,只要超过这个时间就会失败,并停止案例运行。这是防止某些情况导致案例一直卡住不动,也不停止也不失败。
Force Tags:强制标记,简单讲就是给当前测试套件及套件下的每个测试案例都加上Tag,在测试案例上不能删除,只能在设置的地方删除。
Default Tags:默认标记,给自身打上Tag,而不会给子集打上Tag(区分Force Tags)。
Edit其他部分:
同项目Edit。
2.2.3 测试用例Edit区
(1)Settings部分
Documentation:文档,每一项都有。可以给当前的对象写一些文档说明。
Setup:指的是案例启动的时候执行某个关键字。
Teardown:指的是案例结束的时候执行某个关键字。
Timeout:设置每一个测试案例的超时时间,超时则失败,并停止案例运行。
Template:测试模版,这是可以指定某个关键字为这个测试套件下所有TestCase的模版,这样所有的TestCase就只需要设置这个关键字的传入参数即可。
Tags:标记某个测试用例。在Run区中Only Run Tests with these Tags和Skip Tests with these Tags,会通过这个标志来识别是否运行或跳过用例。
(2)表格部分(最重要的部分,编写测试用例)
第一列一般写的是关键字,关键字的来源包括BuiltIn库,第三方导入库,自己编写的导入库。
使用技巧
- 如果忘了关键字,按F5调出Search Keywords查找
也可以输入关键字的一部分再同时按住ctrl+shift+space或者ctrl+alt+space键,则可以自动带出相关关键字,以及选中关键字的用法。
注:如果使用Ctrl+Shift+space快捷键无反应,有可能是因为和电脑键盘快捷键有冲突,找到键盘的设置,取消Ctrl+空格热键再去尝试。
b.Ctrl+鼠标悬浮(即鼠标在某个关键字上),可以直接显示该关键字的相关用法。
也可以按住ctrl+alt+space键,查看该关键字的用法。
c.第二三四五列,一般是输入参数,红色的表示必填,浅灰表示选填,深灰则无需填写。
d.带*说明该项没保存,记得实时保存文件。
e.其它快捷键
代码注释: ctrl + #
取消注释: ctrl + $
删除整行代码: ctrl + d
撤销操作:ctrl + z
2.2.4 Text Edit区
该部分记录的是Settings和测试用例文本信息,RIDE自动生成,不用编写。
例如:
2.2.5 Run区
Execution Profile:选择运行方式,选项有pybot、jybot等,默认robot即可。
Report和Log:告和日志,要运行之后才能点击。他们的区别是报告更多是结果上的展示,日志更多是过程的记录。
Autosave:自动保存,如果不勾选,在修改了案例之后如果没有保存的话,运行案例时会提示是否保存。勾选则在运行时自动保存了。
Pause on failure:关键字执行失败后暂停。
Show message log:展示log信息。
Start:运行案例。若该测试套件下的测试用例前无勾选,则默认执行该测试套件下所有的用例。若测试用例勾选,则执行该测试陶见下勾选的用例。
Stop:停止案例。
Only Run Tests with these Tags:只运行这些标记的测试案例。在Test Case的settings里可以添加tag。
Skip Tests with these Tags:跳过这些标记的测试案例。
2.3 案例层和流程层分离
举一个例子:使用Selenium2Library库,调用Edge浏览器打开百度搜索页面搜索“RobotFramework使用方法”,等待5s后再搜索“RobotFramework-ride使用方法”后关闭页面。步骤如下:
为了减少冗余,可以把整个流程剥离出来成一个关键字,然后在不同的Test case中调用这个关键字,传递不同的参数,以进行不同数据在同一流程下测试。
优点:表格化⽤例,降低编写接⼝和⽤例的难度。关键字驱动,重⽤性好,利⽤现有关键字组装新关键字,简化⾃动化测试过程。
2.3.1 创建资源
如果存在可以不需要创建。右键项目FirstTest,点击New Resource
我这里新建的资源叫Resource.txt
2.3.2 创建User Keyword
先选中Testcase1中所有的脚本,右键选择Extract Keyword,取名为“百度搜索”。
此时左边区域会出现“百度搜索”的User Keyword,该User Keyword在测试套件下,一般测试套件不放置User Keyword,建议User Keyword放置在Resource下。
将“百度搜索”User Keyword移至Resource.txt下
Resource.txt导入Library“Selenium2Library”
2.3.3 User Keyword参数设置
由于搜索数据可变,将其作为参数输入,变量用
表示,在
S
e
t
t
i
n
g
s
的
A
r
g
u
m
e
n
t
s
设置,若是有多个参数,那么用”
∣
”分隔,如
{}表示,在Settings的Arguments设置,若是有多个参数,那么用”|”分隔,如
表示,在Settings的Arguments设置,若是有多个参数,那么用”∣”分隔,如{参数1}|${参数2}
2.3.4 导入Resource
在测试套件中导入Resource,才能使用该Resource下的User Keyword。
此时TestCase1需要你输入“百度搜索”的两个参数
优点:有⾼度可扩展性,由通⽤的测试库和⼯具组成,也可以⾃定义资源库,根据项目的需要自定义一些关键字。可以“汉化”,对非脚本开发者更友好,也方便没有代码基础的功能测试人员进行测试。
2.4 循环测试用例
关键字:Repeat Keyword
在只有自动化的时候,往往不是只执行一次就可以重现问题,可能我们需要重复执行一个用例好几遍。Repeat关键字可以重复执行一个关键字,通过设置执行的次数。如果我们需要重复执行某一个用例的时候就可以把这个用例的内容都封装成一个关键字再通过repeat执行就很好的解决了问题。
优点:适用于轮次很多的验收测试。
3、命令行运行RF脚本
本测试项目结构如下:
建议所有可执行的suite以.robot作为后缀结尾,所有配置、关键字资源等以.txt作为后缀结尾,便于区分和后续操作。
3.1 运行项目
语令:robot <项目路径>
会遍历项目下的所有suite
例:robot FirstTest
3.2 运行套件
语令:robot [<suite相对路径或绝对路径>]…
执行该suite中的所有test case
例1:robot FirstTest\TestSuite.robot
例2:robot FirstTest\TestSuite.robot FirstTest\TestSuite2.robot
如果觉得测试标题名称太啰嗦、不美观,可以通过-N或–name参数指定名称
例3:robot -N 测试 FirstTest\TestSuite.robot FirstTest\TestSuite2.robot
3.3 运行用例
3.3.1 指定某个suite下某个用例执行
语令:robot -t/–test 用例名 <suite相对路径或绝对路径>
执行suite中的某个用例
例:robot -t TestCase1 FirstTest\TestSuite.robot
3.3.2 指定某个suite下多个用例执行
语令:robot [-t/–test 用例名]… <suite相对路径或绝对路径>
执行suite中的多个用例
例1:robot -t TestCase1 -t TestCase2 FirstTest\TestSuite.robot
例2:robot -t TestCase* FirstTest\TestSuite.robot
命令还可以与通配符结合使用,此例运行了TestSuite中的TestCase1和TestCase2
语令:robot [-s/–suite <suite名>] [-t/–test 用例名]… 项目名
注:<suite名>不加.robot后缀名,最后要带上项目名,否则会报错
例3:robot -s TestSuite -t TestCase1 -t TestCase2 FirstTest
3.3.3 指定多个不同suite下多个用例执行
语令:robot [-s/–suite <suite名> [-t/–test 用例名]…]… 项目名
例1:robot -s TestSuite -t TestCase1 -t TestCase2 -s TestSuite2 -t TestCase21 FirstTest
例2:robot -t *1 FirstTest\*.robot
命令还可以与通配符结合使用,此例运行了TestSuite中的TestCase1和TestSuite2中的TestCase21
3.3.4 运行指定/除指定Tag的用例
用RIDE给测试用例指定Tag:
TestCase1:测试1 TestCase2:测试2 TestCase21:测试3 TestCase22:测试4
(1)运行指定Tag的用例:
语令:robot [-i/–include Tag名] <suite相对路径或绝对路径>/<项目名>
例:robot -i 测试1 FirstTest\TestSuite.robot
(2)运行除指定Tag的用例:
语令:robot [-e/–exclude Tag名] <suite相对路径或绝对路径>/<项目名>
例1:robot -e 测试1 FirstTest
指定多个不同suite下排除某些Tag用例
例2:robot -s TestSuite -e 测试1 -e 测试2 -s TestSuite2 -e 测试3 FirstTest
3.4 通过执行文件执行命令
如果命令太长,可以将命令放到一个txt文件中,通过命令robot -A 文件名执行。
注意:参数之间要换行!!!不可放在同一行
command.txt内容 :
–name 命令文件测试
-s TestSuite
-t TestCase1
-t TestCase2
-s TestSuite2
-t TestCase22
FirstTest
3.5 结果报告
结果报告包含output.xml、log.html、report.html,默认生成到当前目录。
output.xml记录的测试结果是XML文件,根据特定的需要可以编写脚本读取XML文件并生成特定的测试报告。如下图:
log.html会记录RobotFramework运行的每一步操作,主要用于编写测试脚本的过程中查看。如下图:
report.html为测试报告,整理性的展示测试用例的运行情况。如下图:
3.5.1 更改结果报告输出目录
语令:robot -d/–outputdir <指定目录>
例:robot -d FirstTest\Report -i 测试1 FirstTest\TestSuite.robot
3.5.2 指定文件输出名
(1)可以对其分别修改,参数如下:
-o/–output <指定名称>
-l/–log <指定名称>
-r/–report <指定名称>
例:robot -d FirstTest\Report -r rep.html -i 测试1 FirstTest\TestSuite.robot
(2)不想要某个报告可以设置None
例:robot -l NONE -i 测试1 FirstTest\TestSuite.robot
优点:自动生成html格式的测试报告和日志。
4、pabot并行测试
Pabot:Robot Framework 测试用例并行执行器
4.1 安装
语令:pip install -U robotframework-pabot
4.2 Robot VS Pabot
Robot:“串行”测试
过程:项目->suite1-> suite1.用例1-> suite1.用例2…->suite2-> suite2.用例1->…
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
csdnimg.cn/44ab403b76ee4300b76281f9433a817f.png)
4.2 Robot VS Pabot
Robot:“串行”测试
过程:项目->suite1-> suite1.用例1-> suite1.用例2…->suite2-> suite2.用例1->…
[外链图片转存中…(img-cAyIrbcj-1715147110452)]
[外链图片转存中…(img-NUsWTrEx-1715147110453)]
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!