日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

DW的ajax简单应用,你离高薪 offer 只差一个接口自动化入门,我是认真的

發布時間:2023/12/9 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 DW的ajax简单应用,你离高薪 offer 只差一个接口自动化入门,我是认真的 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、自動化分類 (1)接口自動化

python/java+requests+unittest框架來實現 python/java+RF(RobotFramework)框架來實現——對于編程要求不高

(2)Web UI功能自動化

python/java+selenium+unittest+ddt+PO框架來實現 python/java+RFS(RobotFrameWork+Selenium)框架來實現——對于編程要求不高

(3)App自動化

python/java+appnium+unittes框架來實現 python/java+RF(RobotFramework)框架來實現——對于編程要求不高

二、接口自動化與Web自動化的區別

(1)接口自動化是沒有界面的,不需要對界面元素定位操作,不需要考慮界面延遲的問題,執行效率更高 (2)接口自動化用的是requests測試庫,Web自動化用的selenium測試庫 (3)接口自動化的覆蓋率可以達到100%(絕大部分的接口都可以實現自動化) Web自動化的覆蓋率能達到80-90%算OK(可能會有某些功能是沒辦法實現自動化的)

三、怎么做接口自動化 3.1、流程 A. 確定業務范圍,哪些業務功能的接口可以做自動化——接口自動化的覆蓋率可以達到 100% B. 時間進度安排,人員分配 C. 確定自動化測試框架 D. 準備數據——準備接口用例數據 E. 編寫接口自動化腳本 3.2、搭建接口自動化測試環境 1、安裝python3.x——配置python的環境變量 2、安裝PyCharm——python開發工具 3、安裝測試庫 Requests庫—— 提供了豐富的用來發請求,對請求進行處理的API函數 xlrd,xlwt庫—— 提供了對Excel文件進行操作的API函數 Pymysql庫—— 提供了對Mysql數據庫進行操作的API函數 paramsunittest庫—— 實現參數化的庫 Json庫—— 提供了對Json格式的數據進行操作的API函數(python自帶的基礎庫) Re庫—— 可以使用這個庫中的API函數對HMTL數據進行操作 4.3、準備數據——準備接口用例數據 我們把接口用例數據放入在Excel表格中,因為每一個接口都包含:請求地址,請求方式,請求參數,以及響應數據;所以在Excel表格中按照以下方式來組織我們的接口用例數據,包含以下幾個內容: 用例名稱,請求地址,請求方式,請求頭,請求參數,預期結果(斷言) 然后我們會封裝一個函數去讀取Excel數據,以參數的形式傳遞到腳本中,具體操作步驟如下: 4.4、編寫自動化測試腳本

1、步驟:

A、導包

import requests

B、組織請求參數

url = ‘http://localhost/fw/index.php?ctl=user&act=dologin&fhash=hbUjHVrQIgHkwdMdNGnPrSiIkVBeWcrOvJpmsXgyNuMewKfKGy’

par = {

‘email’: ‘Jason’,

‘user_pwd’: ‘TWlKaGRrRFJrQXJZZlFXYkh5WlNQZ2tpZkFZQlVlUUhyRE5SdndSUGdKanFDTG1LYUYlMjV1NjVCOSUyNXU3RUY0emdwMTIzNDU2JTI1dThGNkYlMjV1NEVGNg==‘,

‘auto_login’: 0,

‘ajax’: 1

}

C、發送請求

res = requests.post(url, data=par)

res = requests.get(url,params=par)

D、提取響應對象中的數據,并做斷言

1、提取響應*body*內容**

res.text —— 如果返回的是html格式的數據,使用res.text提取`

res.json() —— 如果后臺返回的是json格式的數據,則使用這個API函數來提取`

2、提取響應頭***

res.headers

3、提取狀態碼,響應信息

res.status_code

res.reason

4、提取cookie值

res.cookies()

2、傳遞請求頭

header = {

‘User-Agent’: ‘Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:67.0) Gecko/20100101 Firefox/67.0’,

‘Accept’: ‘application/xml’,

}

res = requests.post(url,data=par,headers=header)

3、傳遞cookie,token值

通過請求頭來傳遞 —— 直接從瀏覽器上查看cookie值,并傳遞到后臺。

header = {

‘Cookie’: ‘PHPSESSID=3724b412550a557825da5528dd6198c6’

}

res = requests.post(url,data=par,***headers=heade***r,allow_redirects=False)

發請求的時候通過cookies這個參數來傳遞

import requests

#1. 登錄,獲取cookie值

def getCookie():

url = ‘http://localhost/fw/index.php?ctl=user&act=dologin&fhash=hbUjHVrQIgHkwdMdNGnPrSiIkVBeWcrOvJpmsXgyNuMewKfKGy’

par = {

‘email’: ‘Jason’,

‘user_pwd’: ‘TWlKaGRrRFJrQXJZZlFXYkh5WlNQZ2tpZkFZQlVlUUhyRE5SdndSUGdKanFDTG1LYUYlMjV1NjVCOSUyNXU3RUY0emdwMTIzNDU2JTI1dThGNkYlMjV1NEVGNg==‘,

‘auto_login’: 0,

‘ajax’: 1

}

res = requests.post(url, data=par)

return res.cookies

#2. 調用充值接口

#2.1 獲取cookie值

cookie = getCookie()

#2.2 發充值請求

url = ‘http://localhost/fw/member.php?ctl=uc_money&act=incharge_done’

par = {

‘check_ol_bl_pay’:’on’,

‘money’:1000,

‘bank_id’:0,

‘memo’:234567890,

‘payment’:5,

}

#發充值請求

res1 = requests.post(url,data=par,cookies=cookie,allow_redirects=False) # 自動重定向的,可以取消自動重定向

print(res1.status_code)

print(res1.reason)

print(res1.headers)

先創建一個session對象,所有請求都使用這個session對象來發送

import requests

#1. 發登錄請求

url = ‘http://localhost/fw/index.php?ctl=user&act=dologin&fhash=hbUjHVrQIgHkwdMdNGnPrSiIkVBeWcrOvJpmsXgyNuMewKfKGy’

par = {

‘email’: ‘Jason’,

‘user_pwd’: ‘TWlKaGRrRFJrQXJZZlFXYkh5WlNQZ2tpZkFZQlVlUUhyRE5SdndSUGdKanFDTG1LYUYlMjV1NjVCOSUyNXU3RUY0emdwMTIzNDU2JTI1dThGNkYlMjV1NEVGNg==‘,

‘auto_login’: 0,

‘ajax’: 1

}

#創建一個seesion對象,后期使用這個session對象來發請求

ses = requests.session()

#發登錄請求,返回的cookie值會自動化保存到session對象中

response1 = ses.post(url,data=par)

#2. 發充值請求

url = ‘http://localhost/fw/member.php?ctl=uc_money&act=incharge_done’

par = {

‘check_ol_bl_pay’:’on’,

‘money’:1000,

‘bank_id’:0,

‘memo’:234567890,

‘payment’:5,

}

response2 = ses.post(url,data=par,allow_redirects=False)

print(response2.headers)

復制代碼

4.5、工程管理維護與優化 1、數據驅動——實現接口用例數據與腳本的分離 我們把接口用例數據放入在Excel表格中,因為每一個接口都包含:請求地址,請求方式,請求參數,以及響應數據;所以在Excel表格中按照以下方式來組織我們的接口用例數據,包含以下幾個內容: 用例名稱,請求地址,請求方式,請求頭,請求參數,預期結果(斷言) 然后我們會封裝一個函數去讀取Excel數據,以參數的形式傳遞到腳本中,具體操作步驟如下:

安裝xlrd庫

pip install xlrd

調用xlrd庫中的API函數來實現對Excel表格數據的讀取

#封裝一個讀取Excel表格數據的函數

#對Excel表格數據的讀取需要用到一個庫——xlrd庫

import xlrd

def get_data(filename,sheetname):

#1. 打開Excel文件

workbook = xlrd.open_workbook(filename)

#2. 打開Excel文件中的某張表

sheet = workbook.sheet_by_name(sheetname)

#3. 讀取表中的內容

list = []

for I in range(1,sheet.nrows):

data = sheet.row_values(i)

list.append(data)

return list

if __name__==‘__main__’:

result = get_data(‘D:\\\\JMeter\\\\1947_Project\\\\cxy-project02\\\\data\\\\接口用例數據.xls’,’登錄’)

print(result)

問題解決1

工程問題:

1、沒有安裝xlrd

2、沒有把xlrd導入工程

復制代碼

2、unittest框架 作用:用來管理用例,加載用例,執行用例 原理:有幾個核心組件 1、測試固件 setUp() 每條用例執行之前,首先會執行這個setUp()方法,在setUp()方法中完成準備初始化工作 比如:連接數據庫,后期在將Web UI功能自動化的時候,可以在這里去打開瀏覽器,配置 tearDown() 每條用例執行完成之后,回收一些資源,比如:關閉數據庫,關閉瀏覽器 2、測試用例 每一條用例需要實現一個用例方法,每個用例方法都必須要以test開頭 3、測試套件 執行用例的時候,需要創建測試套件,把用例加入測試套件。 4、加載器 用來加載用例的,把測試用例加入測試套件中 5、執行器 用來執行測試套件中的用例的 如何使用unittest框架來編寫用例

#1. 導包

import time

import unittest

import requests

from common.excelUtils import get_data

import paramunittest

#讀取excel表格中的數據

list = get_data(‘D:\\\\JMeter\\\\1947_Project\\\\cxy-project02\\\\data\\\\接口用例數據.xls’,’登錄’)

#2. 定義一個類,去繼承unittest.TestCase

@paramunittest.parametrized(*list) # 引用list中的所有數據

class FwLogin(unittest.TestCase):

def setParameters(self,case_name,url,method,headers,params,assert_info):

‘’’

有多少條用例,這個函數就會執行多少次,每執行一條用例之前先會執行這個函數,把數據提取出來。

:param case_name:

:param url:

:param method:

:param headers:

:param params:

:param assert_info:

:return:

‘’’

self.case_name = str(case_name)

self.url = str(url)

self.method = str(method)

self.headers = str(headers)

self.params = str(params)

self.assert_info = str(assert_info)

#1. 實現一個用例方法

def test_login_case(self):

time.sleep(5)

#1. 組織參數

self.headers= eval(self.headers) # 將字符串轉化為字典

self.params = eval(self.params)

#2. 發請求

if self.method == ‘POST’:

response = requests.post(self.url,data=self.params,headers=self.headers)

else:

response = requests.get(self.url,params=self.params,headers=self.headers)

#3. 檢查,斷言

self.check_result(response)

def check_result(self,response):

‘’’

斷言 檢查結果的

:param response:

:return:

‘’’

self.assert_info = eval(self.assert_info) #預期結果

try:

self.assertEqual(response.status_code,200,’響應狀態碼錯誤’)

self.assertEqual(response.reason,’OK’,’響應的響應碼錯誤’)

self.assertDictEqual(response.json(),self.assert_info,’響應的正文內容不一致!’)

print(‘%s測試用例通過!’ %self.case_name)

except AssertionError as e:

print(‘%s測試用例不通過!%s’ %(self.case_name,e))

if __name__ == ‘__main__’:

unittest.main()

最后為方便大家學習測試,特意給大家準備了一份13G的超實用干貨學習資源,涉及的內容非常全面。

包括,軟件學習路線圖,50多天的上課視頻、16個突擊實戰項目,80余個軟件測試用軟件,37份測試文檔,70個軟件測試相關問題,40篇測試經驗級文章,上千份測試真題分享,還有2021軟件測試面試寶典,還有軟件測試求職的各類精選簡歷,希望對大家有所幫助……

關注我公眾號:【程序員小濠】即可獲取這份資料了!

我的軟件測試交流群:175317069 歡迎各位大佬來群里交流~我也會不定期的發放軟件測試資料

如果我的博客對你有幫助、如果你喜歡我的博客內容,請 “點贊” “評論” “收藏” 一鍵三連哦!

總結

以上是生活随笔為你收集整理的DW的ajax简单应用,你离高薪 offer 只差一个接口自动化入门,我是认真的的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。