测试用例(Day1)及代码总结(3.14)

等价类划分法、边界值法、错误推测法是平时工作中最常用的方法

方法一:等价类划分法

将所有可能的输入数据划分为若干子集,从每一个子集中,挑选任意输入数据,测试效果是一样的。

方法二:边界值分析法

对输入或输出的边界值进行测试的一种黑盒测试方法,即选取边界值进行测试。因为测试数据的边界值在程序中最容易出错,所以边界值应该重点测试。

方法三:错误推测法

基于对被测软件系统的理解、过往经验以及个人直觉,推测出软件可能存在的缺陷,从而有针对性地设计测试用例的方法。

即错误的操作,比如输入输出数据为0或空格等容易错误的情况。将其作为测试用例来执行。

解释一:边界值法设计用例步骤
1、明确需求
2、确定有效和无效等价类
3、确定边界范围值
4、提取数据编写测试用例
使用场景
在等价类的基础上针对有边界范围的测试数据输入的地方(重点关注边界)
常见词语描述:大小、尺寸、重量、最大、最小、至多、至少等修饰词语
典型代表:有边界范围的输入框类测试

代码总结:

导入模块:

from selenium import webdriver

from selenium.webdriver.common.by import By

from selenium.webdriver.support.ui import WebDriverWait

from selenium.webdriver.support.waite import WebDriverWait

import unittest

import ddt

from readdata import readcsv

import csv

#导入下拉框操作

from selenium.webdriver.support.select import Select

#导入鼠标操作

from selenium.webdriver.common.action_chains import ActionChains

#导入键盘操作

from selenium.webdriver.keys import Keys

输入框操作:

#在输入框输入输入内容:

element.sendKeys("文本内容")

#将输入框清空

element.clear()

#获取输入框的文本内容

element.getText()

下拉框

定位下拉框

Select select = new Select(driver.find_element(By.ID(“select”)));

select.selectByVisibleText(“A”);

select.selectByValue(“1”);

select.deselectAll();

select.deselectByValue(“1”);

select.deselectByVisibleText(“A”);

select.getAllSelectedOptions();

select.getFirstSelectedOption();
单选框

定位单选框

WebElement radio=driver.find_element(By.ID("id值"))

radio.click();     //选择某个单选项

radio.clear();     //清空某个单选项

radio.isSelected();  //判断某个单选项是否已经被选择

弹框对话框

Alert alert=driver.switch_to.alter()

alter.accept()

alter.dismiss()

alter.text

滚动条:

scrollTo(x,y)

js="window.scrollTo(100,400);"

driver.execute_script(js)

读取csv文件:

import csv
def readcsv():
    path=r"C:\Users\墨,漓汐\Desktop\demo.csv"
    stream=open(path,'r',encoding='gb2312')
    data=csv.reader(stream)
    list=[]
    i=0
    for row in data:
        if i!=0:
            list.append(row)
        i=i+1
    return list
if __name__ == '__main__':
    data=readcsv()
    for row in data:
         print(row)
import csv
def readcsv():
    path=r"C:\Users\墨,漓汐\Desktop\demo.csv"
    stream=open(path,'r',encoding='gb2312')
    data=csv.reader(stream)
    list=[]
    i=0
    for row in data:
        if i!=0:
            list.append(row)
        i=i+1
    return list
if __name__ == '__main__':
    data=readcsv()
    for row in data:
         print(row)

数据驱动及断言例子:

import unittest
import ddt
import time
from selenium import webdriver
from selenium.webdriver.common.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\墨,漓汐\Downloads\chromedriver.exe")
        self.driver.get("http://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_to.alert.text
            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.webdriver.common.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\墨,漓汐\Downloads\chromedriver.exe")
        self.driver.get("http://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_to.alert.text
            self.assertEqual(ss,'保存成功!')
            self.driver.switch_to.alert.accept()

if __name__ == '__main__':
    unittest.main()


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值