RobotFramework 作业 4
**按照如下说明 安装、运行 教学管理web系统的安装包
1.确保本机已经安装了python3.6,并且pip命令的目录已经添加到path环境变量中。
2.点击这里
https://github.com/jcyrss/songqin-testdev/raw/master/webapi/code/restapi-teach5.zip
下载zip包
解压zip包到一个目录中(请确保该目录的路径里面没有中文字符)
3.进入目录,双击运行install.bat,安装必要的库
4. 最后双击run.bat即可运行该web系统。 注意:run.bat 里面运行着产品服务,不要关闭该命令行窗口。
如果运行run.bat 出现 80 port not free 这样的问题,解决方案参考
https://github.com/jcyrss/songqin-testdev/issues/4
5.登录浏览器,输入http://localhost/mgr/login/login.html地址,进入管理员登录界面。
输入管理员用户名auto,密码为 sdfsdfsdf,即可登录
创建一个RF测试套件,包含下面的一个用例
用例名:
验证当系统中没有课程的时候,是否能成功添加一个课程
前置条件:
系统中没有课程
测试步骤:
添加课程,输入课程名、详情描述、展示次序,点击创建
预期结果:
创建的课程正确显示在下面的课程列表中。
这里为了简化,我们只检查 课程名就可以了
注意:
这个用例的初始化和清除操作,都是需要设置为无课程状态。
需要我们开发一个python测试库,使用selenium库开发关键字函数deleteAllCourse, 实现使用Python自动点击删除课程按钮**
测试库(另一种写法)
from selenium import webdriver
import time
def Delete_Course():
driver = webdriver.Chrome()
driver.implicitly_wait(10)
driver.get('http://localhost/mgr/login/login.html')
driver.find_element_by_id('username').send_keys('auto')
driver.find_element_by_id('password').send_keys('sdfsdfsdf')
driver.find_element_by_tag_name('button').click()
driver.implicitly_wait(2)
tbody = driver.find_elements_by_css_selector("tbody")
if tbody: #判断里面有没有课程,没有的话,直接退出
tr = driver.find_elements_by_css_selector("tbody>tr")
for i in range(1,len(tr)+1):
dele = driver.find_element_by_css_selector("tbody>tr>td:nth-child(4)>button:nth-child(2)")
dele.click()
driver.find_element_by_css_selector(".btn-primary").click()
time.sleep(1)
driver.refresh()
driver.quit()
测试库 st.py
from selenium import webdriver
import time
def DeleteAllCourse():
driver = webdriver.Chrome()
driver.implicitly_wait(10)
driver.get('http://localhost/mgr/login/login.html')
driver.find_element_by_id('username').send_keys('auto')
driver.find_element_by_id('password').send_keys('sdfsdfsdf')
driver.find_element_by_tag_name('button').click()
driver.implicitly_wait(2)
while True:
deleteButtons = driver.find_elements_by_css_selector(
"button[ng-click^='delOne']")
if deleteButtons:
deleteButtons[0].click()
driver.find_element_by_css_selector('button.btn-primary').click()
time.sleep(1)
else:
break
driver.implicitly_wait(10)
driver.quit()
RF测试套件文件 t1.robot
*** Settings ***
Library SeleniumLibrary
Library collections
Library st
*** Test Cases ***
百度搜索松勤
[Setup] DeleteAllCourse
[Teardown] DeleteAllCourse
Open Browser http://localhost/mgr/login/login.html chrome
Set Selenium Implicit Wait 10
Input Text id=username auto
Input Text id=password sdfsdfsdf
Click Element css:button #点击登录按钮的元素
Click Element css:button[ng-click*="showAddOne=true"] #点击添加课程
input text css:[ng-model*="addData.name"] 初中化学
input text css:[ng-model*="addData.desc"] 初中化学课程 #课程描述
input text css:[ng-model*="addData.display_idx"] 初中化学课程
sleep 1
Click Element css:button[ng-click*="addOne()"] #点击添加一个课程
${eles}= Get WebElements css:tr>td:nth-child(2) #Get WebElements获取页面元素,是列表。赋值给一个变量
${lessons}= create list #创建一个空列表
:FOR ${ele} in @{eles} #从列表中获取,用@符.不需要冒号
\ log to console ${ele.text} #缩进
\ Append To List ${lessons} ${ele.text} #第一个参数是列表,第二要加的课程,要导入collections
Should Be Equal ${lessons}==["初中化学"]
Close Browser