软件测试(补充)

13.1列表推导式

# 请用列表推导式实现,根据一个列表生成一个新的列表
# 根据某种规则:求平方
# 一行代码实现

list1 = [1,2,3,4,5,6]
list2 = []
# for i in list1:
#     print(i)
#     r = i * i
#     list2.append(r)
# print(list2)


# 用map函数也可以实现
result = map(lambda x:x*x,list1)
print(list(result))

# 列表推导式实现
result = [i * i for i in list1]
print(result)

result = [i **3 for i in list1]

# 最终只返回大于60 的数字,补充i不是返回的结果,i是列表中的元素
result = [i **3 for i in list1 if i > 60]
print(result)

result = [i **3 for i in list1 if i**3 > 60]
print(result)

# 只计算大于3的数字即可
result = [i **3 for i in list1 if i > 3]
print(result)

13.2 冒泡排序法

# 使用冒泡排序法将以下列表中的元素从小到大进行排序
list1 = [5,3,2,10,15,13]
# 冒泡排序法实现思路:两个相邻的数字进行比较,大的向上浮,小的向下沉,最后一个元素是最大的

"""
从左往右依次相邻比较:共循环5轮;比较15次


第一轮循环
1、比较5和3,5>3(交换位置)
        [3,5,2,10,15,13]
2、比较5和2,5>2(交换位置)
        [3,2,5,10,15,13]
3、比较5和10,5<10(位置不动)
        [3,2,5,10,15,13]
4、比较10和15,10<15(位置不动)
        [3,2,5,10,15,13]
5、比较15和13,15>13(交换位置)
        [3,2,5,10,13,15]
        最大值已被确认:15
第二轮循环
.......................................................
        13被确认
第三轮循环
.......................................................
     10被确认
第四轮循环
......................................................
        5被确认
第五轮循环
......................................................
        3被确认
(2已经没有需要比较的相邻值了;所以2被确认最小)
"""
def bubble_sort(blist):
    list_len = len(blist)
    print("传入的参数列表长度是{}".format(list_len))
    # 如何获取到相邻的两个元素
    # 外层循环就是控制循环次数的
    for i in range(0,list_len-1):
        print("--------------第{}轮开始排序------------".format(i+1))
        for j in range(list_len -1 -i):# 减个i是减少排序次数
            print("此时的列表的形状是{}".format(blist))
            print("此时我们要排序的元素是{}和{}".format(blist[j],blist[j+1]))
            # 排序,交换位置
            if blist[j]> blist[j+1]:
                blist[j],blist[j+1] = blist[j+1],blist[j]

            print("排序后的列表的形状是{}".format(blist))
        print("==============第{}轮排序结束===========".format(i+1))
bubble_sort(list1)

13.3 快速排序法

# 请使用快速排序法实现以下列表的从小到大排序
list1 = [5,3,2,10,15,13]

"""
核心思想
1、从列表中取出任意一个元素,但是我们一般取第一个
2、把这个取出来的元素作为比较的标准
3、把比这个元素小的放在左边
4、把比这个元素大的放在右边

"""
#
# def quick_sort(quick_list):
#     print("现在的列表是:{}".format(quick_list))
#
#     if quick_list == []:
#         print("-----寻找结束,此时列表为空-----")
#         return []
#
#     first = quick_list[0]
#     # 使用列表推导式加上递归实现
#     print("开始寻找比第一个元素《《小》》的元素,第一个元素是{}".format(first))
#     less = quick_sort([l for l in quick_list[1:] if l < first])
#
#     print("开始寻找比第一个元素《《大》》的元素,第一个元素是{}".format(first))
#     more = quick_sort([m for m in quick_list[1:] if m >= first])
#
#     print("**********此时返回的列表是{}**********".format(less+[first]+more))
#     return less + [first] + more
#
# print(quick_sort(list1))

# 快速排序法最简单的写法
def quick_sort(quick_list):
    if quick_list == []:
        return []
    less = quick_sort([l for l in quick_list[1:] if l < quick_list[0]])
    more = quick_sort([l for l in quick_list[1:] if l >= quick_list[0]])
    return less + [quick_list[0]] + more

13.4 Python面向对象

  • 你是如何理解面向对象的?

    • 面向对象是一种编程思想
    • 面向对象的三大特点:
      • 封装{面向对象的基本应用:类中的属性(私有、公有)、方法(类方法、静态方法、一般方法、私有方法、构造方法)}
      • 继承{继承有单继承、多继承}
      • 多态{多态指多种形态、不同类对象针对同一消息做出不同响应}
  • 类中私有变量能否访问

    • 当然可以访问,但是我们写代码时不建议这样做
    • 使用类__dict__属性可以查看到类中被重命名的私有属性和方法

其中格式为_类名+私有属性名或私有方法名

13.5 Web自动化测试中的验证码问题

  • 验证码的分类:
    • 文字验证码、数字验证码、动验证码、计算题验证码、顺序点击验证码、图形识别验证码、短信验证码
  • 解决验证码思路:
    • 关闭验证码:由开发人员解决
    • 万能验证码:开发人员设置
    • 绕过验证码:在测试代码中添加cookie,保持登录状态

13.6 如何管理自动化测试用例

  • 自动化测试中如何管理测试用例?
    • 根据项目规模进行管理{1、小项目用excl,大项目放在数据库中(讲究的是规范与共享)}
    • 项目之初有频繁的更改,采用excl更加的灵活;项目迭代比较稳定,采用数据库中;项目稳定后也采用数据库存储。

13.7 什么时候开展自动化测试

  • 项目中什么时候开展自动化测试?
    • 项目运行版本相对比较稳定的时候;
    • 从项目流程看自动化测试执行的环节:立项——文档——代码编写——单元测试——冒烟测试(准入测试)——功能测试——项目集成——集成冒烟测试(准入测试)——集成功能测试——上线部署——回归测试;其中冒烟测试、集成冒烟测试、回归测试都可以进行自动化测试。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阿山的️

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值