Python 基礎


一、前言

  一如既往,開始前先嘮叨幾句,這兩年有點滿足於現狀了,最近出去找虐了,發現自己的技術有點渣,可以用幾個不夠來概括:不夠扎實,不夠深入,不夠系統化。好了,啰嗦完了,學習的熱情又上來了,計划用一個月的時間把同事遺留給我的書看完,哈哈。

二、如何學好自動化測試

1、編程語言

我選用Python哈

2、Selenium/appium API

Selenium(WebDriver)和appium API提供了操作web/app的類和方法,我們用這些方法就可以操作web頁面上的元素或APP上面的控件

3、單元測試框架

單元測試框架是用例定義測試用例、組織和運行測試用例的,是編寫自動化測試用例的基礎。

三、Python基礎

1、打印和注釋

Python不區分單引號和雙引號,都可以用來表示一個字符串,注釋的話,# 單行注釋     ''' 多行注釋

Python提供了print()方法來打印信息,以下是例子說明

# 定義name和age變量
name = "tom"
age = 18
# 用連接符(+)進行拼接,因為age是整型,要通過str()方法將整型轉換成字符串
print ("名字是:"+name+",年齡是:"+str(age))
# 用格式符(%s %d)進行替換,其中%s用於指定字符串,%d(data)用於指定數字,如果不確定數據類型 可以用%r
print("名字是:%s, 年齡是:%d" %(name,age))
# 用格式化函數format進行格式化,這是比較常用的
print("名字是:{},年齡是:{}".format(name,age))

2、分支與循環

2.1 if 語句

a =2 
b = 3
if a>b:
    print("a大於b")
else:
    print("a小於b")

2.2 for 語句

# 循環遍歷列表
zoons = ["monkey","horse","bear"]
for zoon in zoons:
    print(zoon)
# 打印1-10之間的奇數, 格式:range(start,end[,step]) ,在range()函數中,start表示起始位置,ens表示結束位置,step表示每次循環的步長
# 運行的結果為1 3 5 7 9
for i in range(1,10,2):
    print(i)

3、列表、元組與字典

3.1 列表

列表即list,也稱數組,用[]表示,例子說明如下

# 定義列表
lists = [1,2,3,4,5]
# 打印列表
print(lists)
# 打印列表中的第1個元素和最后一個元素,結果為1 5
print(lists[0],lists[-1])
# 修改列表中的第5個元素為s , 結果為[1, 2, 3, 4, 's']
lists[4] = "s"
print(lists)
# 在列表末尾添加元素和刪除列表的第一個元素, 結果為[2, 3, 4, 's', 'a']
lists.append("a")
lists.pop(0)
print(lists)

3.2 元組

元組與列表類似,使用()表示,元組與列表的區別在於:列表是可變的,即可以追加、刪除和修改其中的元素,而元組是不可變的,因為元組不提供append()方法來追加元素,所以當不確定元素個數時建議使用列表,當提前知道元素數量時使用元組,因為元素的位置很重要。例子說明如下

# 定義元組
tup1 = (1,2,3,"c","d")
tup2 = (7,8,9)
# 查看元組,第一個打印結果是1   第二個打印結果是(7, 8)
print(tup1[0])
print(tup2[0:2])

3.3 字典

 字典用{}表示,每個元素由key和value組成,Python規定一個字典中的key必須是獨一無二的,value可以相同,例子說明如下

# 定義字典
dicts = {"usernama":"xiaoming","password":"12345"}
# 打印字典中的所有key,keys()方法返回字典key的列表,結果是  dict_keys(['usernama', 'password'])
print(dicts.keys())
# 打印字典中的所有value,values()方法返回字典value的列表,結果是dict_values(['xiaoming', '12345'])
print(dicts.values())
# 打印字典以列表方法返回,items()方法將所有的字典元素以列表形式返回,結果是dict_items([('usernama', 'xiaoming'), ('password', '12345')])
print(dicts.items())
'''循環打印字典key和value,
結果是key的值為:'usernama'
value的值為:'xiaoming'
key的值為:'password'
value的值為:'12345'
'''
for k,v in dicts.items():
    print("key的值為:%r" %k)
    print("value的值為:%r" %v)
# 刪除key是password的項,結果是dict_items([('usernama', 'xiaoming')])
dicts.pop("password")
print(dicts.items())

4、函數、類和方法

4.1 函數

用def關鍵字來定義函數,例子說明如下

# 例子1:定義add()函數,函數接收a,b兩個參數
def add(a,b):
    return a+b
# 調用add()函數,並打印:通常add()函數不會直接打印結果,而是通過將return關鍵字返回,所以需要使用變量c接收add()函數的返回值
c = add(1,4)
print(c) # 結果是 5

# 例子2:如果調用時不傳參數,那add()函數會使用默認參數進行計算,否則計算參數的值,c的結果是11,c1的結果是6
def add(a=1,b=5):
    return a+b
c = add(4,7)
c1 = add()
print(c)
print(c1)

4.2 類和方法

在面向對象編程的世界里,一切皆為對象,抽象的一組對象就是類。比如汽車是一個類,而小明家的凱迪拉克就是一個具體的對象。用class關鍵字來創建類。

# 定義Myclass 類
class MyClass(object):
    def say(self,name):
        return "hello," + name
# 調用MyClass類,結果是hello,GP
mc = MyClass()
print(mc.say("GP"))

5、模組

模組,也稱為類庫或模塊。Python有自己的標准模塊和第三方庫,比如要用時間有關的功能,可以調用python標准模塊time,如果要實現web自動化測試,可以調用python第三方庫selenium。

5.1 調用模塊

# 1: 通過import關鍵字調用time模塊
import time
# 2: 直接導入ctime()函數
from time import ctime
# 3:直接導入time模塊下多個函數或所有函數,使用時也是不用加time前綴
from time import ctime, sleep
from time import *  # 一般不推薦這種做法
# 4:對導入的函數重命名,作用:若與自己定義的函數重名時可以采用這種
from time import ctime as nowtime
# 1: 調用time模塊下的ctime()函數用於獲得當前時間,結果是Sat May  1 06:49:35 2021
print(time.ctime())
# 2: 若是直接導入某函數,則可以不用告訴python,ctime()是time模塊提供的,直接用即可
print(ctime())

5.2 自定義模塊

除了調用python標准模塊和第三方庫外,還可以自己創建模塊。

目錄project創建兩個文件:a.py ,test.py

a.py文件中創建add()函數

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

test.py文件想調用a.py文件中的add()函數,可以這么寫,如下,這就實現了跨文件的函數導入

# 導入a.py 文件中的add函數
from a import add
print(add(4,5))

5.3 跨目錄調用文件

 試了好久,沒調用成功,后面成功后再更新。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM