等价类划分法、边界值法、错误推测法是平时工作中最常用的方法
方法一:等价类划分法
将所有可能的输入数据划分为若干子集,从每一个子集中,挑选任意输入数据,测试效果是一样的。
方法二:边界值分析法
对输入或输出的边界值进行测试的一种黑盒测试方法,即选取边界值进行测试。因为测试数据的边界值在程序中最容易出错,所以边界值应该重点测试。
方法三:错误推测法
基于对被测软件系统的理解、过往经验以及个人直觉,推测出软件可能存在的缺陷,从而有针对性地设计测试用例的方法。
即错误的操作,比如输入输出数据为0或空格等容易错误的情况。将其作为测试用例来执行。
解释一:边界值法设计用例步骤
1、明确需求
2、确定有效和无效等价类
3、确定边界范围值
4、提取数据编写测试用例
使用场景
在等价类的基础上针对有边界范围的测试数据输入的地方(重点关注边界)
常见词语描述:大小、尺寸、重量、最大、最小、至多、至少等修饰词语
典型代表:有边界范围的输入框类测试
import unittest
import ddt
from readdata import readcsv
import csv
#导入下拉框操作
from selenium.webdriver.support.select import Select
#导入鼠标操作
from selenium.webdrivermon.action_chains import ActionChains
#导入键盘操作
from selenium.webdriver.keys import Keys
#在输入框输入输入内容:
element.sendKeys("文本内容")
#将输入框清空
element.clear()
#获取输入框的文本内容
定位下拉框
Select select = new Select(driver.find_element(By.ID(“select”)));
select.selectByVisibleText(“A”);
select.selectByValue(“1”);
select.deselectAll();
select.deselectByValue(“1”);
select.deselectByVisibleText(“A”);
定位单选框
WebElement radio=driver.find_element(By.ID("id值"))
radio.click(); //选择某个单选项
radio.clear(); //清空某个单选项
radio.isSelected(); //判断某个单选项是否已经被选择
弹框对话框
Alert alert=driver.switch_to.alter()
alter.accept()
alter.dismiss()
<滚动条:
scrollTo(x,y)
js="window.scrollTo(100,400);"
ute_script(js)
读取csv文件:
import csv def readcsv():path=r"C:Users墨,漓汐Desktopdemo.csv"stream=open(path,'r',encoding='gb2312')dataader(stream)list=[]i=0for row in data:if i!=0:list.append(row)i=i+1return list if __name__ == '__main__':data=readcsv()for row in data:print(row)
import csv
def readcsv():path=r"C:Users墨,漓汐Desktopdemo.csv"stream=open(path,'r',encoding='gb2312')dataader(stream)list=[]i=0for row in data:if i!=0:list.append(row)i=i+1return list
if __name__ == '__main__':data=readcsv()for row in data:print(row)
数据驱动及断言例子:
import unittest import ddt import time from selenium import webdriver from selenium.webdrivermon.by import By from readscv import readcsv from selenium.webdriver.support.ui import WebDriverWait @ddt.ddt() class runtestdata(unittest.TestCase):stream_info = readcsv()def setUp(self):self.driver.implicitly_wait(30)self.driver = webdriver.Chrome(r"C:Users墨,漓汐")("192.168.30.253/bsams/front/login.do")self.driver.maximize_window()self.driver.find_element(By.ID, "taskId").send_keys("4")self.driver.find_element(By.XPATH, "//*[@id='loginName']").send_keys("076wan")self.driver.find_element(By.CSS_SELECTOR, "#password").send_keys("076wan")self.driver.find_element(By.XPATH, "//*[@id='vericode']").send_keys("shtd")self.driver.find_element(By.CLASS_NAME, "dl-button").click()def tearDown(self):self.driver.close()@ddt.data(stream_info)def testone(self,list):for item in list:# print(item[0])# print(100*'-')self.driver.find_element(By.LINK_TEXT, "品牌").click()self.driver.find_element(By.XPATH,"/html/body/div[2]/div/div[2]/div[2]/div[1]/div/input").click()self.driver.find_element(By.XPATH,"/html/body/div[6]/div[1]/div[2]/div[2]/div[1]/div/div[2]/form/div[1]/div[2]/input").send_keys(item[0])self.driver.find_element(By.XPATH,"/html/body/div[6]/div[1]/div[2]/div[2]/div[1]/div/div[2]/form/div[2]/div[2]/input").send_keys(item[1])self.driver.find_element(By.XPATH,"//*[@id='cboxLoadedContent']/div/div[3]/a[2]").click()ss=self.driver.switch_self.assertEqual(ss,'保存成功!')self.driver.switch_to.alert.accept()if __name__ == '__main__':unittest.main()
import unittest
import ddt
import time
from selenium import webdriver
from selenium.webdrivermon.by import By
#从py文件名为readscv中导入readcsv方法函数
from readscv import readcsv
from selenium.webdriver.support.ui import WebDriverWait
@ddt.ddt()
class runtestdata(unittest.TestCase):stream_info = readcsv()def setUp(self):self.driver.implicitly_wait(30)self.driver = webdriver.Chrome(r"C:Users墨,漓汐")("192.168.30.253/bsams/front/login.do")self.driver.maximize_window()self.driver.find_element(By.ID, "taskId").send_keys("4")self.driver.find_element(By.XPATH, "//*[@id='loginName']").send_keys("076wan")self.driver.find_element(By.CSS_SELECTOR, "#password").send_keys("076wan")self.driver.find_element(By.XPATH, "//*[@id='vericode']").send_keys("shtd")self.driver.find_element(By.CLASS_NAME, "dl-button").click()def tearDown(self):self.driver.close()@ddt.data(stream_info)def testone(self,list):for item in list:# print(item[0])# print(100*'-')self.driver.find_element(By.LINK_TEXT, "品牌").click()self.driver.find_element(By.XPATH,"/html/body/div[2]/div/div[2]/div[2]/div[1]/div/input").click()self.driver.find_element(By.XPATH,"/html/body/div[6]/div[1]/div[2]/div[2]/div[1]/div/div[2]/form/div[1]/div[2]/input").send_keys(item[0])self.driver.find_element(By.XPATH,"/html/body/div[6]/div[1]/div[2]/div[2]/div[1]/div/div[2]/form/div[2]/div[2]/input").send_keys(item[1])self.driver.find_element(By.XPATH,"//*[@id='cboxLoadedContent']/div/div[3]/a[2]").click()ss=self.driver.switch_self.assertEqual(ss,'保存成功!')self.driver.switch_to.alert.accept()if __name__ == '__main__':unittest.main()
本文发布于:2024-02-02 10:12:08,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170683992643114.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |