泰安可信赖的企业建站公司,产品互联网做推广做什么网站好,wordpress 4.9.6 漏洞,wordpress模板官网在编写用例之间#xff0c;笔者再次强调几点编写自动化测试用例的原则#xff1a;
1、一个脚本是一个完整的场景#xff0c;从用户登陆操作到用户退出系统关闭浏览器。 2、一个脚本脚本只验证一个功能点#xff0c;不要试图用户登陆系统后把所有的功能都进行验证再退出系统…在编写用例之间笔者再次强调几点编写自动化测试用例的原则
1、一个脚本是一个完整的场景从用户登陆操作到用户退出系统关闭浏览器。 2、一个脚本脚本只验证一个功能点不要试图用户登陆系统后把所有的功能都进行验证再退出系统 3、尽量只做功能中正向逻辑的验证不要考虑太多逆向逻辑的验证逆向逻辑的情况很多例如手号输错有很多种情况验证一方面比较复杂需要编写大量的脚本另一方面自动化脚本本身比较脆弱很多非正常的逻辑的验证能力不强。我们尽量遵循用户正常使用原则编写脚本即可 4、脚本之间不要产生关联性也就是说编写的每一个脚本都是独立的不能依赖或影响其他脚本。 5、如果对数据进行了修改需要对数据进行还原。 6、在整个脚本中只对验证点进行验证不要对整个脚本每一步都做验证。
一、登陆用例实例 笔者建议通过excle 表格来编写自动化测试用例。 用例001 代码示例
备注通过匹配用户登录之后的昵称来判断用户是否登录成功。 用例脚本login.py
#codingutf-8
from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
import timedriver webdriver.Firefox()
driver.get(http://passport.kuaibo.com/login/?referrerhttp%3A%2F%2Fwebcloud.kuaibo.com%2F)
driver.maximize_window() #浏览器最大化#登陆快播私有云
driver.find_element_by_id(user_name).send_keys(testing360)
driver.find_element_by_id(user_pwd).send_keys(198876)
driver.find_element_by_id(dl_an_submit).click()
time.sleep(3)#获取用户名
now_userdriver.find_element_by_xpath(//div[idNav]/ul/li[4]/a[1]/span).text#用户名是否等于虫师不等于将抛出异常
if now_useru虫师:print 登陆成功
else:raise NameError(user name error!)#退出
driver.find_element_by_class_name(Usertool).click()
time.sleep(2)
driver.find_element_by_link_text(退出).click()
time.sleep(2)
driver.close()
二、添加文件用例实例 用例002 备注通过计算用户列表中的文件的数量来判断文件是否添加成功。
用例脚本collect.py
注用例登陆与退出参考用例001本用例只关注收藏用户分享的逻辑代码。#判断当前文件个数
inputsdriver.find_elements_by_tag_name(input)
n0
for i in inputs:if i.get_attribute(type)checkbox:nn1
print u当前列表文件为%d %n#收藏用户分享文件
driver.find_element_by_class_name(collect).click()
time.sleep(3)#再次获取当前文件的个数
inputsdriver.find_elements_by_tag_name(input)
ns0
for ii in inputs:if ii.get_attribute(type)checkbox:nsns1
print u当前列表文件为%d %ns#判断执行收藏文件之后比收藏之间文件加1 否则抛异常
if nsn1:print ok!
else:raise NameError(添加文件失败!)
三、删除文件实例 用例003 备注因为删除了一个文件对文件的数据发生的改变如果多次执行脚本列表中的文件被删除完了就会引发异常所以在删除一个文件后需要再添加一文件但添加文件操作不做验证。 用例脚本del_one_file.py#判断当前文件个数
inputsdriver.find_elements_by_tag_name(input)
n0
for i in inputs:if i.get_attribute(type)checkbox:nn1
print u当前列表文件为%d %n#删除操作
driver.find_element_by_xpath(/html/body/div/div[2]/div[2]/div/div[4]/table/tbody/tr/td/input).click()
driver.find_element_by_class_name(dele).click()
driver.find_element_by_xpath(/html/body/div[2]/div[2]/div[2]/div).click()
time.sleep(4)#再次获取当前文件的个数
inputsdriver.find_elements_by_tag_name(input)
ns0
for ii in inputs:if ii.get_attribute(type)checkbox:nsns1
print u当前列表文件为%d %ns#判断执行删除单个文件之后比删除之后文件减1 否则抛异常
if nsn-1:print ok!
else:raise NameError(删除文件失败!)
#收藏用户分享单个文件driver.find_element_by_class_name(collect).click()
time.sleep(3)
四、重命名文件用例实例 用例004 备注文件的重命名其实我们很难找到证据验证点证明重命名成功那么脚本整个运行没有报错我们也可模糊的判断功能测试是OK 的。 用例脚本renaming.py
#勾选重命名的文件 driver.find_element_by_xpath(/html/body/div/div[2]/div[2]/div/div[4]/table/tbody[5]/tr/td/input).click() time.sleep(3) #鼠标移动到“更多”按钮弹下拉框
elementdriver.find_element_by_class_name(more-fe) #定位到“更多”按钮 ActionChains(driver).move_to_element(element).perform() #鼠标移动到“更多”按钮弹下拉框 time.sleep(2) #在li 标签更多下拉框中筛选到data-actionrename重命名选项点击 lisdriver.find_elements_by_tag_name(li) for li in lis: if li.get_attribute(data-action) rename: li.click() time.sleep(2)
在input 标签中筛选typetext 的重命名输入框
inputsdriver.find_elements_by_tag_name(input) for input in inputs: if input.get_attribute(type) text: input.send_keys(u新文件名) #进行重名操作 input.send_keys(Keys.ENTER) #回车确认重命名 time.sleep(2)
总结 在本章中简单对比了手工测试用户与自动化测试用例的区别自动化测试用例编写的原则如何通过python 捕捉异常和抛出异常以及webdriver 提供的get_screenshot_as_file()函数以及如何编写自动化用例与脚本等。 不过笔者先不要急于开始实施自动化测试虽然我们可以编写单个的测试用例并通过异常捕捉判断用例是否运行成功。但只有与通过测试框架的整合我们才能真正有效可行的运用自动化测试技术。