简介/特点


基于python开发,可扩展,以关键字驱动的自动化测试框架
数据驱动:把测试用例的数据放到excel、yaml里面,然后通过改变excel/yaml文件里面的数据达到控制测试用例执行的过程
关键字驱动:把项目中的业务逻辑或者基本操作封装成一个个的关键字,然后调用不同的组合或关键字的组合实现不同的业务逻辑

特点:

  1. 写测试用例方便,可使用robot、txt、tsv、html的格式
  2. 自动生成html报告
  3. 自带很多类,支持扩展类
  4. 可自定义关键字
  5. 支持非gui形式,可以和jenkins持续集成

    环境搭建


  1. pip install robotframework==3.1
  2. pip install robotframework-ride
  3. web自动化测试:pip install robotframework-seleniumlibrary==3.0.0
  4. 接口自动化测试:pip install robotframework-requests
  5. APP自动化测试:pip install robotframework-appiumlibrary

基本使用


测试套件

  1. Edit标签
    1. setting设置—>加载外部文件(扩展文件)定义内部变量 定义元数据

image.png

RF类库和扩展库

  1. 标准库 venv\Lib\site-packages\robot\libraries

Builtin(测试库)
DateTime(时间库)
Collections(集合库)
Screenshot(截屏库)
image.png

  1. 扩展库

web自动化测试:SeleniumLibrary,Selenium2Library,Selenium2Library for java
接口自动化测试:RequestsLibrary
APP自动化测试:AppiumLibrary

RF基本使用

基本类的关键字

使用shift+ctrl+space可以提升补全关键字信息

  1. *** Settings ***
  2. *** Test Cases ***
  3. 测试test_01
  4. #设置变量
  5. ${a} Set Variable 1000
  6. #打印log信息 message html=html level=INFO
  7. Log <b>Hello</b>,world HTML INFO
  8. #获取当前时间
  9. ${time} Get Time
  10. Log ${time}
  11. #拼接字符串
  12. ${str} Catenate 百里 守约 貂蝉
  13. #拼接字符串 拼接符号使用‘#’'SEPARATOR'关键字相当于定义拼接符号
  14. ${str} Catenate SEPARATOR=# 守约 貂蝉
  15. #创建列表和python一样
  16. ${list} Create List 百里 守约 貂蝉
  17. Log ${list}
  18. #创建列表,['百里'|'守约'|'貂蝉'],通常用在FOR循环中使用
  19. @{list} Create List 百里 守约 貂蝉
  20. Log Many @{list}
  21. #字典关键字
  22. ${dict} Create Dictionary name=百里 age=38

复杂关键字

  1. *** Settings ***
  2. Library Collections
  3. Library Screenshot
  4. *** Test Cases ***
  5. 复杂关键字
  6. #执行Python方法
  7. ${rand} Evaluate random.randint(1,100) modules=random
  8. ${time} Evaluate datetime.datetime.now() modules=datetime
  9. ${day} Evaluate datetime.datetime.now().day modules=datetime
  10. ${time_type} Evaluate type(datetime.datetime.now())
  11. #执行py文件里面的方法
  12. Import Library C:\\Users\\banma-2900\\venv\\test.py
  13. ${result} sum 10 10 20 50
  14. Log ${result}
  15. #流程控制if
  16. ${a} Set Variable 60
  17. Run Keyword If ${a}<60 Log 不及格
  18. ... ELSE IF ${a}<80 and ${a}>=60 Log 一般
  19. ... ELSE IF ${a}>=80 Log 优秀
  20. ... ELSE Log 完美
  21. #流程控制for 方法1
  22. FOR ${a} IN 1 2 3 4
  23. Log ${a}
  24. END
  25. #流程控制for 方法2
  26. @{list} Create List 1 2 3 apple
  27. FOR ${a} IN @{list}
  28. Log ${a}
  29. END
  30. #流程控制for 方法3
  31. FOR ${a} IN RANGE 1 11
  32. Run Keyword If ${a} > 6 Exit For Loop
  33. Log ${a}
  34. END
  35. #截图
  36. Take Screenshot

web自动化


常用关键字

  1. *** Settings ***
  2. Library SeleniumLibrary
  3. Library Screenshot
  4. *** Test Cases ***
  5. 常用关键字
  6. Open Browser https://www.baidu.com chrome
  7. Evaluate time.sleep(3)
  8. #设置隐式等待
  9. Set Browser Implicit Wait 3
  10. #设置浏览器最大化
  11. Maximize Browser Window
  12. Evaluate time.sleep(3)
  13. #制定浏览器位置
  14. Set Window Position 100 200
  15. Evaluate time.sleep(3)
  16. #制定浏览器大小
  17. Set Window Size 800 600
  18. Evaluate time.sleep(3)
  19. #前进
  20. Go To https://www.bilibili.com/
  21. Maximize Browser Window
  22. Take Screenshot
  23. Evaluate time.sleep(3)
  24. #回退
  25. Go Back
  26. Evaluate time.sleep(3)
  27. #刷新
  28. Reload Page
  29. #获得浏览器高度和宽度
  30. ${width} ${height} Get Window Size
  31. #获取浏览器标题
  32. ${title} Get Title
  33. #获取浏览器地址
  34. ${location} Get Location
  35. #关闭浏览器
  36. Close Browser

元素定位