软件可靠性测试

1、功能测试

根据测试用例模板,使用黑盒测试方法针对下列网站的注册、登录功能设计测试用例,通过执行测试用例发现系统存在的缺陷,并填写到缺陷报告中。
测试网址链接(千千音乐网站):https://music.91q.com/

(1)测试用例如下:

测试用例1
测试用例2
测试用例3
测试用例4
测试用例5

(2)缺陷报告如下:

缺陷报告

2、自动化测试(Selenium)

测试网站:https://www.qyer.com/
测试脚本如下述代码(qyTest.py):

import time

from selenium import webdriver
from selenium.webdriver import Keys
from selenium.webdriver.common.by import By

# 创建WebDriver对象
# wd = webdriver.Edge()
wd = webdriver.Firefox()
wd.implicitly_wait(20)  #设置隐式等待时间

# 1、打开测试网址首页,并最大化窗口
wd.get('https://www.qyer.com/')
wd.maximize_window()

# 2、通过link text定位,点击“锦囊”
element = wd.find_element(By.LINK_TEXT, '锦囊')
element.click()

# 3、通过link text定位,点击“社区”
element = wd.find_element(By.LINK_TEXT, '社区')
element.click()

# 4、通过link text定位,点击“行程助手”
element = wd.find_element(By.LINK_TEXT, '行程助手')
element.click()

# 5、通过link text定位,点击“商城”
element = wd.find_element(By.LINK_TEXT, '商城')
element.click()

# 6、通过link text定位,点击“酒店·民宿”
element = wd.find_element(By.LINK_TEXT, '酒店·民宿')
element.click()

# 7、通过link text定位,点击“特价酒店”
element = wd.find_element(By.LINK_TEXT, '特价酒店')
element.click()

# 8、点击目的地,输入“广州”,点击搜索
# (1)通过css selector定位到含有placeholder属性的input标签,因为定位到的是一个列表所以用到了for循环
element = wd.find_elements(By.CSS_SELECTOR, 'input[placeholder]')
for element_list in element:
    # 使用Selenium提供的send_keys()方法模拟按键输入,Keys.CONTROL表示“Ctrl”;Keys.DELETE表示“Delete”
    element[0].send_keys(Keys.CONTROL + 'a')
    element[0].send_keys(Keys.DELETE)
    element[0].send_keys('广州')


# (2)通过class定位到搜索按钮,并点击
but_element =wd.find_element(By.CLASS_NAME, '_1NvUtOVR8BL55WjVD2JkAi')
but_element.click()

# 测试结束,强制等待3秒后关闭页面
time.sleep(5)
wd.quit()

3、单元测试(UnitTest)

被测代码(Calculate.py):

def add( a, b):
    return a + b

def sub( a, b):
    return a - b

def mcl( a, b):
    return a * b

def div( a, b):
    if(b == 0):
        return "分母不能为0"
    else:
        return a / b

测试脚本(CalculateTest.py):

import unittest
from Calculate import add,sub,mcl,div
from ddt import ddt,data,unpack

@ddt
class calculateTestCase(unittest.TestCase):
    @data([1,0,1],[-1,0,-1],[-1,1,0])
    @unpack
    def test_add(self, a, b, expect_value):
        result = add(a, b)
        self.assertEqual(result,expect_value,msg=result)

    @data([1,0,1],[-1,0,-1],[-1,1,-2])
    @unpack
    def test_sub(self, a, b, expect_value):
        result = sub(a, b)
        self.assertEqual(result,expect_value,msg=result)

    @data([1,0,0],[-1,0,0],[-1,1,-1])
    @unpack
    def test_mcl(self, a, b, expect_value):
        result = mcl(a, b)
        self.assertEqual(result,expect_value,msg=result)

    @data([0,1,0],[0,-1,0],[-1,1,-1],[1,0,'分母不能为0'])
    @unpack
    def test_div(self, a, b, expect_value):
        result = div(a, b)
        self.assertEqual(result,expect_value,msg=result)

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

测试结果:
单元测试

4、性能测试(JMeter)

测试链接(宜家商城):https://www.ikea.cn/cn/zh/cat/shu-guihe-zhi-wu-jia-st002

(1)创建线程组

创建线程组

(2)添加HTTP采样

采样一采样二

(3)配置CSV文件

JMeter CSV数据文件配置
CSV文件数据

(4)创建结果集并运行线程组

注意:测试线程数先修改为10。因为在使用 jmeter 自带的 run 功能时,不要使用超过 30 的线程数运行脚本,否则可能会造成端口被封。

运行结果如下图:
结果集

(5)命令行运行测试脚本

设置线程数为50;
进入JMeter的bin目录下打开命令提示符输入以下命令:

jmeter -n -t E:\jmeter\Demo\yijia\宜家.jmx -l E:\jmeter\Demo\yijia\report.jtl

其中前面的路径是线程的存放路径,后面的是生成结果集的路径文件。

  • -n:以非GUI模式运行JMeter
  • -t:指定运行测试计划
  • -l:指定保存的jtl文件的路径和名称

运行结果:
命令运行结束
生成的report.jtl文件如下(部分截图):
结果文件

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值