Python自动化测试----Python基础知识掌握

                                                  

一、列表、元组、字典:

1、python中索引从0开始,如果访问最后一个元素,将索引指定为-1,也可以根据索引修改列表赋值,如:number_list[0]='zero'

number_list=['one','two','three','four']
print(number_list[1].title())

2、添加新元素,append()只能在列表最后追加元素,在任意位置插入元素,使用insert()

number_list = ['one', 'two', 'three', 'four']
number_list.append('five')
number_list.insert(0, 'zero')
print(number_list[4].title())

3、删除新元素:根据del,以及索引进行删除,也可以使用pop()函数对列表进行删除,默认删除列表最后一个元素,也可根据索引进行删除,删除元素后会将删除的元素返回,从而使用户能够接着用它

number_list = ['one', 'two', 'three', 'four']
number_list.append('five')
number_list.insert(0, 'zero')
popped_number=number_list.pop()
print(popped_number)
print(number_list[4].title())

运行结果:

4、排序:sort()用于对列表进行永久性排序,默认按照字母顺序a-z排序,倒序:reverse=True(z-a)排序,还可以使用sorted(),sorted()函数进行排序,排序是临时的,不会改变愿列表的真正顺序,反转列表:reverse()

5、遍历列表:

for list_number in number_list :
    print(list_number)

6、range()随机生成函数,可以指定步长

number_list=list(range(1,11))
squares=[]
for value in number_list:
    square=value**2
    squares.append(square)
    print(squares)

运行结果

 

6、

  • 切片:能够输出从特定位置到列表末尾的所有元素,根据索引
print(number_list [-2:])

运行结果:['three','four']

  • 使用切片复制列表,new_list=number[:],这种情况下是将两个变量指向同一个列表,这种情况下修改任何一个列表,另一个同样也会发生变化
  • 使用切片反转列表 print(number_list[::-1])

7、元组:number=(‘1’,‘2’),元组不能修改,只能重新赋值

8、字典:Key-Value

my_auto={'color':'black','capacity':5}
# 添加键值对
my_auto['gearbpx']='8AT'
# 修改字典中值
my_auto['color']='yellow'
# 删除字典中的值
del my_auto['capacity']
# 遍历字典所有值.items,遍历所有Keys,.Keys,遍历所有values,.values
for key,values in my_auto.items():
    print("Key:"+ key)
    print("values:"+values)

 

二、字符串

str = "python string show"
# 使用函数title()修改字符串的大小写
print(str.title())
# 使用upper()函数将所有字母转换成大写
print(str.upper())
# 使用lower()函数将所有字母转换成小写
print(str.lower())
# 字符串拼接
first_str="python"
second_str="string"
str=first_str+" "+second_str
print(str)
# 去空格
str.rsplit()
str.lstrip()
str.strip()

 

三、文件读取

对文件的操作分三步:

1、打开文件获取文件的句柄,句柄就理解为这个文件

2、通过文件句柄操作文件

3、关闭文件。

1)读取文本文件

with open("E:/test.txt", "r") as f:


    #readlines读取文件内每一行数据
    for line in f.readlines():
        line = line.strip('\n') #去掉列表中每一个元素的换行符
        # split():拆分字符串。通过指定分隔符对字符串进行切片,并返回分割后的字符串列表(list)
        data = (line.split(","))
        print(data)

2)读取Excel文件:成千测试用例

思考:

1、用列表存放这些用例数据,所以要用到列表

2、每一行用例要存放在字典内,所以需要用到字典

3、循环写入到字典,然后存放到列表内

import xlrd
class excel_data:
    """读取excl表接口数据"""
    data_path = "E:\\api_interface\\data\\interface.xlsx"
    # 打开文件
    excel = xlrd.open_workbook(data_path)
    # 通过下标定位表格
    sheet = excel.sheet_by_index(0)
    # 行: 6 和列数: 5
    rows, cols = sheet.nrows, sheet.ncols
    def read_excl(self):
        # 获取第一行数据key
        first_row = self.sheet.row_values(0)
        # print(first_row) # [编号,接口方式,host, params, result]
        # 定义空列表,用于存放用例数据
        self.result = []
        # 从第一行用例开始循环(1, 6)循环5次
        for i in range(1, self.rows):
            # 定义空字典
            info_dict = {}
            # 每1次大循环要循环5次(字典里有5组数据)
            for j in range(0, self.cols):
                # j=0,1,2,3,4
                # 添加到字典                                   (1)[0]---第2行第1例的值,依次循环
                info_dict[first_row[j]] = self.sheet.row_values(i)[j]
         # 将数据存放在列表中
            self.result.append(info_dict)
        print(self.result)


if __name__ == "__main__":
    ex = excel_data()
    ex.read_excl()

 

3)读取Yaml文件

思考:

1.定义文件地址

2.打开yaml文件

3.读取文件后转成字典以方便读取

import yaml
import os




# 获取当前脚本所在文件夹路径
curPath = os.path.dirname(os.path.realpath(__file__))


# 获取yaml文件路径
yamlPath = os.path.join(curPath, "E:\\api_interface\\config\\yaml.yaml")


# open方法打开直接读出来
open_file = open(yamlPath, 'r', encoding='utf-8')
result = open_file.read()


file_dict = yaml.load(result, Loader=yaml.FullLoader)  # 用load方法转字典
print(file_d

四、函数和类

1、函数:理解,给一段代码起一个名字

def interview():
    print("把求职者带到3号会议室")
    print("请求职者 完成答卷")
    print("让测试经理来面试 求职者")
    print("让技术总监面试 求职者")

调用函数:

interview()
print('后续代码')

参数传递:


interview('王小五')

return 函数返回值

def squarep(num1,num2):
    return num1**2 + num2**2


ret = squarep(1,2)
print(ret)

局部变量:定义在某个函数内部的变量,只能在函数内部使用

全局变量:定义在所有函数外部的变量,有效范围整个模块文件

常见内置函数:

  • int 函数 经常被我们用来把一个字符串转化为对应的整数
int('1000')   # 返回整数1000
  • float 函数 用来把一个字符串转化为对应的小数(浮点数)
float('1000')    # 返回 浮点数 1000.0
float('6.345')   # 返回 浮点数 6.345
  • str 函数 用来得到一个对象的字符串表示。
str(1000)   # 返回字符串 '1000'
str(1000.23)   # 返回字符串 '1000.23'
  • len 函数 可以得到一个数据对象的长度,通常用来获取 字符串、列表、元组、字典等类型对象的元素个数。
print (len('你好!'))

 

  • type 函数 可以得到一个数据对象类型
type(3)        # 返回  <class 'int'>
type('hello')  # 返回  <class 'str'>

2、类:定义对象类型,

  • 类和实例的关系
    class BenzCar:    
        brand   = '奔驰'  
        country = '德国'  
    
    
        @staticmethod
        def pressHorn(): 
            print('嘟嘟~~~~~~')
    
    
        # 初始化方法, 注意前后各有两个下划线
        def __init__(self):
            self.color  =  'red'        # 颜色
            self.engineSN = '837873398' # 发动机编

     

人 就是 一个 类, 而 关羽、张飞 就是 人 这个类的 具体实例。

狗 也是 一个 类, 而 你们家的阿黄 和 隔壁家的旺财 就是狗 这个类的 具体实例。

  • 继承关系:子类会拥有父类的一切属性和方法
class BenzCar:    
    brand   = '奔驰'  
    country = '德国'  


    @staticmethod
    def pressHorn(): 
        print('嘟嘟~~~~~~')


    def __init__(self,color,engineSN):
        self.color  =  color  # 颜色
        self.engineSN = engineSN # 发动机编号
    
    def changeColor(self,newColor):
        self.color = newColor


class Benz2016(BenzCar):
    price   = 580000
    model   = 'Benz2016'   



class Benz2018(BenzCar):
    price   = 880000
    model   = 'Benz2

注:本文整理摘抄于【Python语言的Selenium自动化测试】+其他博文中

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值