Appium+python自動化(四十一)-Appium自動化測試框架綜合實踐 – 即將落下帷幕(超詳解)

1.簡介

  今天我們緊接着上一篇繼續分享Appium自動化測試框架綜合實踐 – 代碼實現。到今天為止,大功即將告成;框架所需要的代碼實現都基本完成。

2.data數據封裝

2.1使用背景

在實際項目過程中,我們的數據可能是存儲在一個數據文件中,如txt,excel、csv文件類型。我們可以封裝一些方法來讀取文件中的數據來實現數據驅動。

2.2案例

將測試賬號存儲在account.csv文件,內容如下:

account.csv

hg2018

hg2018

hg2019

zxw2019

666

222

參考代碼

2.3enumerate()簡介

enumerate()是python的內置函數

  • enumerate在字典上是枚舉、列舉的意思
  • 對於一個可迭代的(iterable)/可遍歷的對象(如列表、字符串),enumerate將其組成一個索引序列,利用它可以同時獲得索引和值
  • enumerate多用於在for循環中得到計數。

2.4enumerate()使用

如果對一個列表,既要遍歷索引又要遍曆元素時,首先可以這樣寫:

參考代碼
list = ["", "", "一個", "測試","數據"]

for i in range(len(list)):

    print(i,list[i])

上述方法有些累贅,利用enumerate()會更加直接和優美:

參考代碼
list1 = ["", "", "一個", "測試","數據"]

for index, item in enumerate(list1):

        print(index,item)

3.數據讀取方法封裝

  數據讀取方法也屬於公共方法,這裏我們首先實現一下,然後將其封裝到裡邊即可。

3.1數據讀取方法實現的參考代碼

import csv


     def get_csv_data(csv_file,line):

        with open(csv_file, 'r', encoding='utf-8-sig') as file:

            reader=csv.reader(file)

            for index, row in enumerate(reader,1):

                if index == line:

                    return row

 

    csv_file='../data/account.csv'

    data=get_csv_data(csv_file,3)

    print(data)

3.2封裝

將其封裝在公共方法中,在其他地方用到的時候,直接導入調用即可。

4.utf-8與utf-8-sig兩種編碼格式的區別

UTF-8以字節為編碼單元,它的字節順序在所有系統中都是一樣的,沒有字節序的問題,也因此它實際上並不需要BOM(“ByteOrder Mark”)。但是UTF-8 with BOM即utf-8-sig需要提供BOM。

5.config文件配置

各種配置文件都放在這個目錄下。

5.1日誌文件配置 

主要是一些日誌信息的配置。

log.config

 參考代碼
[loggers]
keys=root,infoLogger

[logger_root]
level=DEBUG
handlers=consoleHandler,fileHandler

[logger_infoLogger]
handlers=consoleHandler,fileHandler
qualname=infoLogger
propagate=0

[handlers]
keys=consoleHandler,fileHandler

[handler_consoleHandler]
class=StreamHandler
level=INFO
formatter=form02
args=(sys.stdout,)

[handler_fileHandler]
class=FileHandler
level=INFO
formatter=form01
args=('../logs/runlog.log', 'a')

[formatters]
keys=form01,form02

[formatter_form01]
format=%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s %(message)s

[formatter_form02]
format=%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s %(message)s

6.測試用例封裝

這裏宏哥舉例給小夥伴們演示:封裝註冊和登錄兩個測試用例。

6.1測試用例執行開始結束操作封裝

測試用例執行開始和結束的封裝,其他模塊用到直接導入,調用即可。

myunit.py

參考代碼
# coding=utf-8
# 1.先設置編碼,utf-8可支持中英文,如上,一般放在第一行

# 2.註釋:包括記錄創建時間,創建人,項目名稱。
'''
Created on 2019-11-20
@author: 北京-宏哥   QQ交流群:707699217
Project:Appium自動化測試框架綜合實踐 - 代碼實現
'''
# 3.導入模塊
import unittest
from kyb_testProject.common.desired_caps import appium_desired
import logging
from time import sleep

class StartEnd(unittest.TestCase):
    def setUp(self):
        logging.info('=====setUp====')
        self.driver=appium_desired()

    def tearDown(self):
        logging.info('====tearDown====')
        sleep(5)
        self.driver.close_app()

6.2註冊用例

開始註冊用例代碼邏輯的實現。

test_register.py

參考代碼
# coding=utf-8
# 1.先設置編碼,utf-8可支持中英文,如上,一般放在第一行

# 2.註釋:包括記錄創建時間,創建人,項目名稱。
'''
Created on 2019-11-20
@author: 北京-宏哥   QQ交流群:707699217
Project:Appium自動化測試框架綜合實踐 - 代碼實現
'''
# 3.導入模塊
from kyb_testProject.common.myunit import StartEnd
from kyb_testProject.businessView.registerView import RegisterView
import logging,random,unittest

class RegisterTest(StartEnd):
    def test_user_register(self):
        logging.info('======test_user_register======')
        r=RegisterView(self.driver)

        username = 'bjhg2019' + 'fly' + str(random.randint(1000, 9000))
        password = 'bjhg2020' + str(random.randint(1000, 9000))
        email = 'bjhg' + str(random.randint(1000, 9000)) + '@163.com'

        self.assertTrue(r.register_action(username,password,email))

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

6.3登錄用例

開始登錄用例代碼邏輯的實現。

test_login.py

參考代碼
# coding=utf-8
# 1.先設置編碼,utf-8可支持中英文,如上,一般放在第一行

# 2.註釋:包括記錄創建時間,創建人,項目名稱。
'''
Created on 2019-11-13
@author: 北京-宏哥   QQ交流群:707699217
Project:Appium自動化測試框架綜合實踐 - 代碼實現
'''
# 3.導入模塊
from kyb_testProject.common.myunit import StartEnd
from kyb_testProject.businessView.loginView import LoginView
import unittest
import logging

class TestLogin(StartEnd):
    csv_file='../data/account.csv'

    @unittest.skip('test_login_zxw2018')
    def test_login_zxw2018(self):
        logging.info('======test_login_zxw2018=====')
        l=LoginView(self.driver)
        data=l.get_csv_data(self.csv_file,2)

        l.login_action(data[0],data[1])
        self.assertTrue(l.check_loginStatus())

    # @unittest.skip('skip test_login_zxw2017')
    def test_login_zxw2017(self):
        logging.info('======test_login_zxw2017=====')
        l=LoginView(self.driver)
        data = l.get_csv_data(self.csv_file, 1)

        l.login_action(data[0], data[1])
        self.assertTrue(l.check_loginStatus())

    @unittest.skip('test_login_error')
    def test_login_error(self):
        logging.info('======test_login_error=====')
        l = LoginView(self.driver)
        data = l.get_csv_data(self.csv_file, 3)

        l.login_action(data[0], data[1])
        self.assertTrue(l.check_loginStatus(),msg='login fail!')

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

7.小結

到此,Appium自動化測試框架就差下一篇就全部完成了,聰明的你都懂了嗎???嘿嘿!慢慢地來吧。

下節預告

下一篇,講解執行測試用例,生成測試報告,以及自動化平台,請關注宏哥,敬請期待!!!

本站聲明:網站內容來源於博客園,如有侵權,請聯繫我們,我們將及時處理
【其他文章推薦】

USB CONNECTOR掌控什麼技術要點? 帶您認識其相關發展及效能

※評比前十大台北網頁設計台北網站設計公司知名案例作品心得分享

※智慧手機時代的來臨,RWD網頁設計已成為網頁設計推薦首選

台灣海運大陸貨務運送流程

兩岸物流進出口一站式服務

Model X 高價轉賣,買家是 Ford

據彭博社報導,Tesla 首批發售的 SUV Tesla  Model X 其中一輛的買家是汽車廠商 Ford,後者以高出定價 5.5 萬美元的價格買下了這輛電動車,Ford 是透過一家經銷商購買原車主轉賣的全新 Model X,通常購買競爭對手的新車主要是為了進行測試或者拆解。

Ford 購買 Model X 是 Founders 系列,起售價是 14.4 萬美元,由於首批發售的數量有限,每輛車都有一個編號,Ford 購買的這一輛是 Tesla 加州工廠生產第 64 輛 Model X。原車主是 Tesla 的老客戶、來自加州的 Wayne Skiles,他擁有一輛 Model S,並參加了向親友推薦購車的活動,由於他的推薦 Tesla 售出了 10 輛車,在 Model X 發售時他能夠有機會買到 Founders 系列的 Model X,當然他並沒有打算把這輛車留給自己,選擇在芝加哥交車,隨後就開到汽車店將 Model X 轉賣掉了,還賺了一筆錢。   這輛加州生產的 Model X 最終在底特律被發現,掛著密西根州的車牌,它的車主就是汽車廠商 Ford 公司,購買這輛 Model S,加上稅費和手續費,Ford 一共支付了 21.2 萬美元。為了能夠更早地買到這台車,支付比定價更高的費用是正常的,相信這筆錢對於 Ford 公司來說也不是什麼大數目,那 Ford 為什麼要買競爭對手的新車呢?   汽車廠商購買競爭對手的產品,主要是用於測試或是拆解,以了解對手的設計和技術,Tesla 在電動車的設計製造方面可謂是相當成功,Ford 購買新車來偷師也不足為奇。Ford 公司在聲明中稱,購買汽車廠商的新車進行測試正汽車產業非常常見,為了更早拿到產品,高於定價購買也很正常。   Ford 公司計劃在 2020 年投資 45 億美元研發電動車,至少推出 13 款電動車新品。

(本文授權轉載自《》─〈〉)

本站聲明:網站內容來源於EnergyTrend https://www.energytrend.com.tw/ev/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

※為什麼 USB CONNECTOR 是電子產業重要的元件?

網頁設計一頭霧水??該從何著手呢? 找到專業技術的網頁設計公司,幫您輕鬆架站!

※想要讓你的商品成為最夯、最多人討論的話題?網頁設計公司讓你強力曝光

※想知道最厲害的台北網頁設計公司推薦台中網頁設計公司推薦專業設計師”嚨底家”!!

※專營大陸快遞台灣服務

台灣快遞大陸的貨運公司有哪些呢?

買電動車送補貼金?傳德國財政部提12億歐元獎勵方案

德國電動車銷售積弱不振,據傳財政部已提出總額12億歐元(相當於13.5億美元)的補貼法案,希望為電動車市重新注入活力,而所需費用將由政府及車商聯手買單。

華爾街日報25日引述未具名消息人士報導,德國政府高層和汽車產業代表即將在26日與德國總理梅克爾會面,討論刺激電動車銷售量的獎勵措施,另外也會考慮直接由政府出資、在全國建設充電站。

根據財政部提出的建議,在2016年至2018年夏季期間,購買電動車的民眾可獲得政府與車商補貼5,000歐元,購買油電混合動力車的民眾則可獲得3,000歐元的補助,在此之後補貼金額會分別下降至3,000歐元(電動車)、2,000歐元(油電混合動力車)。

消息顯示,售價高於60,000歐元的電動車不在補助範圍之內,以免獎勵措施淪為補貼富人買車的工具。另外,這個方案將遵循先買先補貼的原則,12億歐元的補助款用罄之後將不再補款。財政部也提議提供3億歐元的額外補貼,為電動車設立充電站。

Thomson Reuters報導,梅克爾甫於4月12日呼籲汽車製造商開出願望清單。梅克爾表示,官方將盡快清除法律障礙、讓他們可以在德國測試無人駕駛車。她透露,德國執政聯盟將在5月底開會討論自駕車法令規範。德國財長Wolfgang Schaeuble上個月說,官方將設法協助電動車開發、但可能無法讓所有車商感到滿意。車界領袖呼籲,德國若想維持全球領導地位、政府就得想辦法提振電動車買氣。

蘋果在德國的電動車開發案似乎正進行的如火如荼。AppleInsider 4月18日引述法蘭克福廣訊報(Frankfurter Allgemeine Zeitung)報導,蘋果已在柏林設立秘密開發實驗室,目前在當地擁有15-20名工程、軟體、硬體、行銷背景的德國汽車業頂尖人才。報導指出,蘋果進軍汽車業的第一款產品將是電動車、但初期不具備自駕功能。

(本文內容由授權提供)

本站聲明:網站內容來源於EnergyTrend https://www.energytrend.com.tw/ev/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

USB CONNECTOR掌控什麼技術要點? 帶您認識其相關發展及效能

※評比前十大台北網頁設計台北網站設計公司知名案例作品心得分享

※智慧手機時代的來臨,RWD網頁設計已成為網頁設計推薦首選

台灣海運大陸貨務運送流程

兩岸物流進出口一站式服務

一文看懂 K8s 日誌系統設計和實踐

作者 | 元乙  阿里雲存儲服務技術專家

導讀:上一篇文章中我們介紹了為什麼需要一個日誌系統、為什麼雲原生下的日誌系統如此重要以及雲原生背景下日誌系統的建設難點,相信 DevOps、SRE、運維等同學看了之後深有體會。本篇文章單刀直入,會直接跟大家分享一下如何在雲原生的場景下搭建一個靈活、功能強大、可靠、可擴容的日誌系統。

需求驅動架構設計

技術架構,是將產品需求轉變為技術實現的過程。對於所有的架構師而言,能夠將產品需求分析透徹是非常基本也是非常重要的一點。很多系統剛建成沒多久就要被推翻,最根本的原因還是沒有解決好產品真正的需求。

我所在的日誌服務團隊在日誌這塊有近10年的經驗,幾乎服務阿里內部所有的團隊,涉及電商、支付、物流、雲計算、遊戲、即時通訊、IoT等領域,多年來的產品功能的優化和迭代都是基於各個團隊的日誌需求變化。

有幸我們最近幾年在阿里雲上實現了產品化,服務了數以萬計的企業用戶,包括國內各大直播類、短視頻、新聞媒體、遊戲等行業Top1互聯網客戶。產品功能從服務一個公司到服務上萬家公司會有質的差別,上雲促使我們更加深入的去思考:究竟哪些功能是日誌這個平台需要去為用戶去解決的,日誌最核心的訴求是什麼,如何去滿足各行各業、各種不同業務角色的需求…

需求分解與功能設計

上一節中我們分析了公司內各個不同角色對於日誌的相關需求,總結起來有以下幾點:

  1. 支持各種日誌格式、數據源的採集,包括非K8s
  2. 能夠快速的查找/定位問題日誌
  3. 能夠將各種格式的半結構化/非結構化日誌格式化,並支持快速的統計分析、可視化
  4. 支持通過日誌進行實時計算並獲得一些業務指標,並支持基於業務指標實時的告警(其實本質就是APM)
  5. 支持對於超大規模的日誌進行各種維度的關聯分析,可接受一定時間的延遲
  6. 能夠便捷的對接各種外部系統或支持自定義的獲取數據,例如對接第三方審計系統
  7. 能夠基於日誌以及相關的時序信息,實現智能的告警、預測、根因分析等,並能夠支持自定義的離線訓練方式以獲得更好的效果

為滿足上述這些功能需求,日誌平台上必須具備的功能功能模塊有:

  1. 全方位日誌採集,支持DaemonSet、Sidecar各種採集方式以應對不同的採集需求,同時支持Web、移動端、IoT、物理機/虛擬機各種數據源的採集;
  2. 日誌實時通道,這個是為了對接上下游所必備的功能,保證日誌能夠被多種系統所便捷的使用;
  3. 數據清洗(ETL: Extract,Transform,Load),對各種格式的日誌進行清洗,支持過濾、富化、轉換、補漏、分裂、聚合等;
  4. 日誌展現與搜索,這是所有日誌平台必須具備的功能,能夠根據關鍵詞快速的定位到日誌並查看日誌上下文,看似簡單的功能卻最難做好;
  5. 實時分析,搜索只能完成一些定位到問題,而分析統計功能可以幫助快速分析問題的根因,同時可以用於快速的計算一些業務指標;
  6. 流計算,通常我們都會使用流計算框架(Flink、Storm、Spark Stream等)來計算一些實時的指標或對數據進行一些自定義的清洗等;
  7. 離線分析,運營、安全相關的需求都需要對大量的歷史日誌進行各種維度的關聯計算,目前只有T+1的離線分析引擎能夠完成;
  8. 機器學習框架,能夠便捷、快速的將歷史的日誌對接到機器學習框架進行離線訓練,並將訓練后的結果加載到線上實時的算法庫中。

開源方案設計

藉助於強大的開源社區,我們可以很容易基於開源軟件的組合來實現這樣一套日誌平台,上圖是一個非常典型的以ELK為核心的日誌平台方案:

  • 利用FileBeats、Fluentd等採集Agent實現容器上的數據統一收集。
  • 為了提供更加豐富的上下游以及緩衝能力,可以使用kafka作為數據採集的接收端。
  • 採集到的原始數據還需要進一步的清洗,可以使用Logstash或者Flink訂閱Kafka中的數據,清洗完畢后再寫入kafka中。
  • 清洗后的數據可以對接ElasticSearch來做實時的查詢檢索、對接Flink來計算實時的指標和告警、對接Hadoop來做離線的數據分析、對接TensorFlow來做離線模型訓練。
  • 數據的可視化可以使用grafana、kibana等常用的可視化組件。

為什麼我們選擇自研

採用開源軟件的組合是非常高效的方案,得益於強大的開源社區以及龐大用戶群體的經驗積累,我們可以很快搭建出這樣一套系統,並且可以滿足我們絕大部分的需求。

當我們把這套系統部署好,能夠把日誌從容器上採集上來、elasticsearch上能夠查到、Hadoop上能夠成功執行SQL、Grafana上能看到圖、告警短信能收到……完成上述流程打通后,加加班可能只需要花費幾天的時間,當系統終於跑通的時候,這時候終於可以長舒一口氣,躺在辦公椅上放鬆放鬆。

然而理想很豐滿現實很骨感,當我們預發通了,測試完了上到生產,開始接入第一個應用,逐漸更多的應用接入,越來越多的人開始使用……這時候很多問題都可能暴露出來:

  • 隨着業務量的上漲,日誌量也越來越大,Kakfa和ES要不斷擴容,同時同步Kafka到ES的Connector也需要擴容,最煩的是採集Agent,每台機器上部署的DaemonSet Fluentd根本沒辦法擴容,到了單Agent瓶頸就沒辦法了,只能換Sidecar,換Sidecar工作量大不說,還會帶來一系列其他的問題,比如怎麼和CICD系統集成、資源消耗、配置規劃、stdout採集不支持等等。
  • 從剛開始上的邊緣業務,慢慢更多的核心業務接入,對於日誌的可靠性要求越來越高,經常有研發反應從ES上查不到數據、運營說統計出來的報表不準、安全說拿到的數據不是實時的……每次問題的排查都要經過採集、隊列、清洗、傳輸等等非常多的路徑,排查代價非常高。同時還要為日誌系統搭建一套監控方案,能夠即時發現問題,而且這套方案還不能基於日誌系統,不能自依賴。
  • 當越來越多的開發開始用日誌平台調查問題時,經常會出現因為某1-2個人提交一個大的查詢,導致系統整體負載上升,其他人的查詢都會被Block,甚至出現Full GC等情況。這時候一些大能力的公司會對ES進行改造,來支持多租戶隔離;或者為不同的業務部門搭建不同的ES集群,最後又要運維多個ES集群,工作量還是很大。
  • 當投入了很多人力,終於能夠把日誌平台維持日常使用,這時候公司財務找過來了,說我們用了非常多的機器,成本太大。這時候開始要優化成本,但是思來想去就是需要這麼多台機器,每天大部分的機器水位都在20%-30%,但是高峰的水位可能到70%,所以不能撤,撤了高峰頂不住,這時候只能搞搞削峰填谷,又是一堆工作量。

上述這些是一家中等規模的互聯網企業在日誌平台建設中經常會遇到的問題,在阿里這些問題會放大非常多倍:

  • 比如面對雙十一的流量,市面上所有的開源軟件都無法滿足我們那麼大流量的需求。
  • 面對阿里內部上萬個業務應用,幾千名工程師同時使用,併發和多租戶隔離我們必須要做到極致。
  • 面對非常多核心的訂單、交易等場景,整個鏈路的穩定性必須要求3個9甚至4個9的可用性。
  • 每天如此大的數據量,對於成本的優化顯得極為重要,10%的成本優化帶來的收益可能就有上億。

阿里K8s日誌方案

針對上述的一些問題,我們經過多年的時間,開發並打磨出這樣一套K8s日誌方案:

  1. 使用我們自研的日誌採集Agent Logtail實現K8s全方位的數據採集,目前Logtail在集團內有數百萬的全量部署,性能、穩定性經過多次雙十一金融級考驗。
  2. 化繁為簡,數據隊列、清洗加工、實時檢索、實時分析、AI算法等原生集成,而不是基於各種開源軟件搭積木的形式實,大大降低了數據鏈路長度,鏈路長度的降低也意味着出錯可能性的減少。
  3. 隊列、清洗加工、檢索、分析、AI引擎等全部針對日誌場景深度定製優化,滿足大吞吐、動態擴容、億級日誌秒級可查、低成本、高可用性等需求。
  4. 對於流式計算、離線分析場景這種通用需求,無論是開源還是阿里內部都有非常成熟的產品,我們通過無縫對接的方式來支持,目前日誌服務支持了數十種下游的開源、雲上產品的對接。

這套系統目前支撐了整個阿里集團、螞蟻集團、雲上上萬家企業的日誌分析,每天寫入的數據量16PB+,開發、運維這樣一套系統問題和挑戰非常多,這裏就不再展開,有興趣的同學可以參考我們團隊的技術分享:。

總結

本篇主要從架構層面去介紹如何搭建一套K8s的日誌分析平台,包括開源方案以及我們阿里自研的一套方案。然而實際這套系統落地到生產環境並有效運行還有很多工作要做:

  1. K8s上以什麼樣的姿勢來打日誌?
  2. K8s上的日誌採集方案選擇,DaemonSet or Sidecar?
  3. 日誌方案如何與CICD去集成?
  4. 微服務下各個應用的日誌存儲如何劃分?
  5. 如何基於K8s系統的日誌去做K8s監控?
  6. 如何去監控日誌平台的可靠性?
  7. 如何去對多個微服務/組件去做自動的巡檢?
  8. 如何自動的監控多個站點並實現流量異常時的快速定位?

後續文章我們會一步一步來和大家分享如何把這套系統落地,敬請期待。

“ 阿里巴巴雲原生微信公眾號(ID:Alicloudnative)關注微服務、Serverless、容器、Service Mesh等技術領域、聚焦雲原生流行技術趨勢、雲原生大規模的落地實踐,做最懂雲原生開發者的技術公眾號。”

本站聲明:網站內容來源於博客園,如有侵權,請聯繫我們,我們將及時處理
【其他文章推薦】

※為什麼 USB CONNECTOR 是電子產業重要的元件?

網頁設計一頭霧水??該從何著手呢? 找到專業技術的網頁設計公司,幫您輕鬆架站!

※想要讓你的商品成為最夯、最多人討論的話題?網頁設計公司讓你強力曝光

※想知道最厲害的台北網頁設計公司推薦台中網頁設計公司推薦專業設計師”嚨底家”!!

※專營大陸快遞台灣服務

台灣快遞大陸的貨運公司有哪些呢?

ASP.NET Core 3.0 gRPC 身份認證和授權

一.開頭聊騷

本文算是對於 ASP.NET Core 3.0 gRPC 研究性學習的最後一篇了,以後在實際使用中,可能會發一些經驗之文。本文主要講 ASP.NET Core 本身的認證授權和gRPC接入,認證方式採用目前主流的 JWT 結合 IdentityServer4。

二.服務端配置

我們首先需要在服務端配置認證和授權。gRPC基於此文的Demo來開始: ,IdentityServer 基於此文Demo: 。

配置

1.首先啟動 IdentityServer4 地址為:

2.為gRPC項目安裝Jwt組件:Install-Package Microsoft.AspNetCore.Authentication.JwtBearer -Version 3.0.0

3.為gRPC項目配置認證和授權服務

在 Startup 類的 ConfigureServices 方法中,配置如下代碼

services.AddAuthorization(options =>
{
    options.AddPolicy(JwtBearerDefaults.AuthenticationScheme, policy =>
    {
        policy.AddAuthenticationSchemes(JwtBearerDefaults.AuthenticationScheme);
        policy.RequireClaim("sub");
    });
});
services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
    .AddJwtBearer(options =>
    {
        options.Authority = "http://localhost:5000";
        options.RequireHttpsMetadata = false;
        options.Audience = "grpc1";
    });

4.啟用認證授權中間件

在 Startup 類的 Configure 方法中,配置如下代碼

app.UseRouting();

app.UseAuthentication();
app.UseAuthorization();

請務必注意中間件順序

5.為gRPC服務啟用授權

我們在 LuCatService 的 SuckingCat 方法上,加上 [Authorize]特性,就和在MVC中一樣。

測試

運行客戶端調用服務端來進行測試,發現服務端返回了授權失敗,客戶端同樣獲得了錯誤。這證明我們的服務端配置是沒有問題的

三.客戶端配置

配置

客戶端首先需要從 IdentityServer 申請 Token,然後在調用 gRPC 服務時傳遞過去,這和 HTTP Api 調用一樣。

1.客戶端項目安裝組件 IdentityModel 獲得基於 HttpClient 的和 IdentityServer 的交互的封裝。

2.獲取Token

// discover endpoints from metadata
var client = new HttpClient();

var disco = await client.GetDiscoveryDocumentAsync("http://localhost:5000");
if (disco.IsError)
{
    Console.WriteLine(disco.Error);
    return;
}

// request token
var tokenResponse = await client.RequestPasswordTokenAsync(new PasswordTokenRequest
{
    Address = disco.TokenEndpoint,
    ClientId = "ro.client",
    ClientSecret = "secret",

    UserName = "alice",
    Password = "password",
    Scope = "grpc1"
});

if (tokenResponse.IsError)
{
    Console.WriteLine(tokenResponse.Error);
    return;
}

Console.WriteLine(tokenResponse.Json);
Console.WriteLine("\n\n");

3.為 gRPC 客戶端請求設置 Token

和 HTTP Api 調用一樣,gRPC也是放在頭部的

var headers = new Metadata {{"Authorization", $"Bearer {tokenResponse.Json["access_token"]}"}};

var catClient = new LuCat.LuCatClient(channel);
var catReply = await catClient.SuckingCatAsync(new Empty(), headers);

主要就是在調用 SuckingCatAsync方法時,傳入了header。

測試

可以看到成功的進行了調用。

四.結束

本文所用代碼地址:

gRPC in Asp.Net Core :

本站聲明:網站內容來源於博客園,如有侵權,請聯繫我們,我們將及時處理
【其他文章推薦】

USB CONNECTOR掌控什麼技術要點? 帶您認識其相關發展及效能

※評比前十大台北網頁設計台北網站設計公司知名案例作品心得分享

※智慧手機時代的來臨,RWD網頁設計已成為網頁設計推薦首選

台灣海運大陸貨務運送流程

兩岸物流進出口一站式服務

小胖李的面試之旅(二)

上一篇:

#0 前言

上一篇寫完之後我就給媳婦做飯去了。。沒看,然後瀏覽量居然又過2000了。好開心!謝謝大家的鞭策。其中又100%的回復都非常的中肯。這是我必學的內容,

所以我就想問問各位回復的老鐵。你們是怎麼知道我是瀋陽的?????

 

#1 降薪

經過上一周的面試經驗總結,講各大招聘網站的薪資全面下降500-1000的檔次,效果非常明顯,周五一天的面試電話等於平時2天的量,

所以側面證明我要的薪資過高,直接讓HR把我pass了。

 

#1 小工廠

公司性質:工業工廠

福利:五險一金(最低)+雙休

面試職位:軟件開發工程師

簡歷途徑:智聯招聘

面試方式:face to face

這是一家做熱電的工廠企業,小工廠,但是根據企查查等app查看,是一家外企,離家比較近,去了之後發現是一家佔地面積不大的工廠,廠房設備老舊。

說他小,其實應該並不小,可能是我這幾年去過的工廠都太大了,這家顯得比較小。

並在車上反覆溫習之前的面試題,進到廠區后給HR打電話,不一會一個男的過來問我是面試的吧,我說,對。

他說:你寫一下你基本情況,給你筆。上2樓,有個休息區,你在哪等我就行,我一會就上去找你。

我說:好的

上了二樓就是樓梯的位置有一個桌子,我一猜,估計就是這了,坐下后,刷刷刷寫。

一直寫到了:

 

猶豫了一下,寫個8500,我就想知道,他怎麼問,因為這個薪資是他們能接受的範圍。他們給出的薪資是 8k-10k

在寫到了:

 

 我真的很想寫  唱,跳,rep,籃球。。但是我控制住了。

等了能有20分鐘吧,HR帶着技術總監來了。

技術總監很嚴肅

進去之後,HR先給自己研磨了一杯咖啡,我TM以為給我的呢!

我和技術總監面前什麼都沒有,做了一個簡單的自我介紹。

技術總監:你會EF嗎?

小胖李:會,但是我們一般不用,因為有一定的局限性

技術總監(點頭):的確有一些局限性

小胖李:那種框架的東西,學起來也簡單,一般我們底層用ibatis

技術總監:會oracle嗎?

小胖李:不會,但是oracle的語法和mssql是很相似的,類似c#與java的關係

技術總監(點頭):是很相似但是還是有不一樣的地方

小胖李:的確,例如oracle沒有視圖的概念,存儲過程和函數也是有一定的區別的

技術總監(點頭):你說你以前是做能源的,你們是怎麼做的

小胖李:通過三種方式:1 2 3

技術總監 and HR (頻頻點頭)

技術總監:我沒問題了

HR:你期望薪資為什麼比你現在的工資還低?

小胖李:我未來的職業發展我想定位資深技術開發工程師,其次,我現在因為經常不休息,所以當前工作給的工資比較多,如果到一個可以正常休息雙休和福利保險的公司。

那麼我不會要太高的價格

HR:哪你能接受出差嗎?

小胖李:一個月以內的可以接受

HR:回去等通知吧

總結:

這一次面試我是完全賭的成份,因為我不會EF。但是這一次感覺沒問什麼東西,但是感覺又問了一些東西,只不過沒有答到面試者的那個點上,不過新的突破就是終於輪到HR問薪資的問題了,比之前強了一點點。

 

 

#2 玄學公司

公司性質:市政監控和道路監控

福利:五險一金(最低)+雙休

面試職位:軟件開發工程師

簡歷途徑:BOSS

面試方式:face to face

這家單位是周末找到我並且邀請我去面試,BOSS和我聯繫的人向我推了他們技術總監的微信,加了之後看一眼朋友圈,整個一個玄學大師。研究易經的,我都懷疑我是不是被騙子公司給找到了。

看這情況,就有點不想去了,所以什麼都沒準備,直接去面了。

技術總監:介紹一下自己

小胖李:巴拉巴拉巴拉

技術總監:問你幾個問題。。。什麼是事件?

小胖李:(我要說 按鈕的 click 是事件是不是就是純扯淡?)我們很少用 事件,委託這些。

技術總監(閉眼):你知道L……I……N……Q嗎?

小胖李(3秒蒙逼):您說是 linq吧?

技術總監(睜眼):對,你知道是做什麼的嗎

小胖李:我知道,linq我的個人理解是程序級的的快速擴展性查詢,一般都用在集合上,我一般常用的where,desc等這些和lambda差不多,沒lambda那麼強大而已。。。。。

技術總監(不耐煩):不用說了,假設查詢 表某一列大於500的 數據總數怎麼查?

小胖李:where 那一列 500, count總數就可以了

技術總監:表連接有哪些

小胖李:左聯,右連,內連

技術總監:堆棧有什麼區別

小胖李:一個是存值類型一個存引用類型

技術總監:不準確

小胖李:嗯。。。。。。。

技術總監:站在內存角度考慮一下

小胖李:(老子c#也不管內存了啊)。。。。。

技術總監:我沒問題了

尷尬的沉默時間。。不說讓我走也不說後面還有啥。。我就尷尬的看着他和老闆,我決定打破這個沉默
小胖李:咱們公司是有五險一金和雙休的吧

老闆:有的,你想要多少薪資?

小胖李:8500到9000

老闆:嗯。。。

又他媽就沉默……

小胖李:哪沒問題的話我就先走了?

老闆(如負釋重):行,你回去等通知吧,這两天就告訴你

小胖李:好的

面試題:

1,事件,委託是什麼東西

  事件是一種特殊的委託,委託是將方法作為變量

2,堆棧的區別是什麼

  棧:是一個先進后出的數據結構,通常用於保存方法(函數)中的參數,局部變量. 

    堆:是一個可動態申請的內存空間(其記錄空閑內存空間的鏈表由操作系統維護)

總結

這次面試雖然也問到了價錢這一關,但是也出現新的問題,要對一些不常用的東西的理論知識有所了解。

 

#3 又是一個新的外包公司

公司性質:市政監控和道路監控

福利:五險一金(最低)+雙休+福利假(?)

面試職位:軟件開發工程師

簡歷途徑:BOSS

面試方式:電話面試

和上一篇文章的大型外包公司是同類型,同地點的,只不過又換了一家分包商,本來不是很在意的,因為我知道過的可能性很低,但是該準備還是要準備的。一邊玩遊戲,這邊電話就來了

PM:你在項目一般都是什麼職位

小胖李:項目經理,開發者,需求分析師

PM:能說說嘛

小胖李:一般項目交給我之後我負責前期需求溝通,中期的開發,以及後期的培訓溝通會等等,一直到項目驗收階段為止,不負責收錢,其他基本都是我負責。

PM:也就是項目的主要負責人被

小胖李:對,主要負責人之一

…… 沒了,整個電話面試8分鐘左右,沒有討論任何技術問題,只是對我個人做一個了解,我也和他實話實說,我面過你們的總包,只不過被pass了,1選3。

結果:面試通過。。。很意外的面試通過。。毫無準備的那種。12月份入職

總結:有時候不吹牛逼,聲音沉穩一些,對方可能就認為你是個大佬。

 

#4 電腦城的一家互聯網公司

公司性質:面向全市老百姓的互聯網公司

福利:五險一金(最低)+雙休(忙季 單休)+福利假

面試職位:軟件開發工程師

簡歷途徑:前程

面試方式:筆試+face to face

這個是在上一家外包公司沒有給我結果的時候答應人家去面試的,所以做人不能食言該去就要去,去了之後做了20道筆試題,筆試題如下鏈接:

和這個差不多內容,反正就是百度能查得到的內容。

PM(翻看我的筆試題):你覺得我們的面試題怎麼樣?

小胖李:都是百度的內容,基本就是比較熱門的面試題,屬於基礎內容,題目一部分出自於博客園一部分出自黑馬

PM:…….你怎麼知道

小胖李:我在來之前在家看了。。上面很多題我都看了,但是我沒有按照原答案寫,我就挑我會的在項目中使用過的寫了一下,而且是按照我的理解寫的

PM:那你說一下什麼時候用抽象類什麼時候用接口

小胖李:不會,但是大部分的項目都是用接口吧?畢竟接口是多態的一種。

PM:抽象類難道不是嗎?

小胖李:沒具體研究過,因為實際項目中不會用到抽象類,這個東西沒印象

PM:哪抽象類的關鍵字是什麼?

小胖李:。。。。波浪線?

PM:不是。波浪線是析構函數,你學會c++?

小胖李:沒有,我就忽然想起來,c#裏面有個波浪線的寫法

PM:析構函數在c++和c#的作用和方式是一樣的

小胖李:受教了

PM:哪你這道題 string s=new string(“xyz”) 實現了幾個 string object 為什麼寫了一個呢?

小胖李:因為他就 new了一次呀

PM:哪 “xyz”呢

小胖李:難道您的意思是指 new了一個新的對象之後 xyz指向了這個的對象嗎?

PM:差不多這個意思

PM:attribute 是做什麼用的?

小胖李:方法或者類的特性

PM:具體一點呢

小胖李:嗯。。。沒怎麼了解過,但是我的項目中是把這個作為一種事物回滾的時候使用

PM:???具體說一下什麼是回滾

小胖李:回滾就是同時發生2件以上的事情,有一個成功一個失敗的情況下為了讓數據統一減少臟數據,講成功的那件事情回滾回去

PM:嗯。。為什麼不直接用sql的事物呢

小胖李:因為我們框架帶呀

PM:。。。。特性可不是用來做這個的,這個東西是用來做反射的

小胖李:哦 哦,,但是不是說反射不安全么?動態的講程序級映射出去

PM:哪有,哈哈哈

小胖李:看來我這方面知識挺匱乏

PM:你看你寫的 const 和 readonly的區別,一個是只讀一個不是,常量難道不是只讀嗎?

小胖李:那也是只讀的話這倆還有啥區別了呢?

PM:對啊,你說呢

小胖李:嗯。。。。。。

PM:一個是在編譯前就知道結果,一個是編譯中知道結果

小胖李:原來是這樣。哈哈哈

PM:能說說out和ref的區別嗎

小胖李:ref呢。。就是 傳進去一個變量,在方法結束后 在方法外可以訪問這個變量並且知道結果

PM:out呢

小胖李:具體不太了解,就用過一次,是我的方法需要返回兩個結果才這麼用的

PM:看字面意思也是用於返回兩個結果

小胖李:哦,哦,哪為什麼不用list,hashtable返回多個結果呢

PM:你的意思是在創建一個對象返回多個結果?

小胖李:對啊

PM:。。。。嗯。。。

 

PM:你看我們的面試題還行吧

小胖李:看着沒難度,但是理論知識要的還是蠻多的,我理論知識還是比較匱乏的

PM:也不完全是,比如CLR這個很多人都不知道啥意思,你至少寫出來了。

小胖李:哈哈

PM:給你XXXX,行嗎

小胖李:我回去考慮一下哈

結果:面試通過,但是給的比我要的還要低。。

總結:一共聊了能有半個多小時吧,中途還接一個面試邀請電話,但是這家單位側重於理論知識還是很多的,其實能通過面試題和面試題的擴展知道自己的知識點差在什麼地方,只不過是自己忽略了。

並且在平時的工作中沒有使用這些複雜的東西。自己的知識面停留在幾年前,而且基礎知識有一些偏差性,不是全理論覆蓋。。這個也是需要補充學習的。

 

 

#5 躲在居民區的小作坊

公司性質:真 · 小作坊

福利:五險(最低)+(單休)

面試職位:軟件開發工程師

簡歷途徑:前程

面試方式:筆試+face to face

這家單位在購物街的後面的小區里,雖然外面掛着大牌子寫着孵化基地,裏面明顯是改造的樓,一大堆小公司,看起來就不是很正規的樣子。進去之後先讓我做一套筆試題。

這套筆試題5分鐘答完。掃一眼就知道答案,而且全是選擇題。。。我也不知道這個公司怎麼想的,最後還通過他們的網站收集了一波我的個人信息,包括手機號,照片,身份證。。。

本來不想面了,因為公司不大,領導倒是挺有派頭,,,不過用啤酒杯喝茶也是奇葩。。沒問我任何技術問題,只是隨便東扯扯,西扯扯。找他們要了一個離譜的價格我就撤退了

總結:這家單位有詐騙的嫌疑,在前程上寫的是 五險一金+雙休+各種福利,結果去了之後告訴我只有五險和單休。還有就是 太簡單的實踐類問題的企業就不要去了,基本很小很騙人。

 

#6 彩蛋

為了提升自己在智聯的簡歷排名,花了88塊錢買了個簡歷置頂15天。結果是簡歷瀏覽數從0變成1。。。看我的這家還是我主動投的。這是我花的最大頭的88塊錢。

但是有意思的是,花了這88之後,前程和boss電話和消息就沒斷。。。花一份錢享受3家VIP。。賺了!~

 

#7 福利好的互聯網企業

公司性質:房產互聯網企業

福利:五險一金(全額)+雙休+福利假+附加福利假

面試職位:軟件開發工程師

簡歷途徑:BOSS

面試方式:筆試+機試+face to face

說實話,這家企業在我年輕的時候去面過一次沒過,這次又去面還是沒過。哈哈哈哈,但是他家的待遇是真的不錯,分為筆試和機試,初試是筆試,但是很明顯筆試沒過,就算我這麼抄百度都沒過。。。哎。。

對話也沒什麼營養,描述一下為什麼在前幾家單位離職,對方和我說一下他們想招的是什麼級別的人,雖然勉強能夠上,但是人家不是很想勉強的要我。哈哈哈,沒關係等以後有機會在來面試。 

這家單位真的挺值得去的,可以和他們一起學習技術,通過我內部得到的消息,他們在做技術轉型很多技術還是大家一起學習的,但是福利好也意味着規矩多。和我一個城市的小夥伴可以自己考慮考慮。

 

#8 航空企業

公司性質:民航企業下屬單位

福利:五險一金(全額)+雙休+福利假

面試職位:軟件開發工程師

簡歷途徑:前程

面試方式:face to face

主要問的內容偏向於,是否能獨立搭建框架,能否處理大數據,回答的磕磕巴巴。不過福利待遇是真的很棒,先以外包身份進去,

然後會過一段時間轉為這個公司的正式員工,上級公司是民航。。目前還在招人的狀態,估計開春會有一個大面積招人的可能。有興趣的小夥伴可以在前程上更新一下自己的簡歷。

 

#9 最後一節

我已經選擇了外包公司,準備入職,所以不再面試。上一篇博客很多小夥伴猜到我是哪個城市了,那麼我說的這幾家單位大部分都能猜到,後面幾個沒有寫具體的對話內容是因為我是一天内面了這3家,太累了,一天答了兩份筆試

叨叨3次自己經歷,路上多次差點追尾別人。。給大家能帶來的總結就是

技術要掌握 

net core 

mvc 4 

mvc 5

那麼基本問題都不大,最後說的航空和互聯網企業,我真的蠻看好的,互聯網企業是穩定的技術更新換代,他們肯定也不會在短期內把平台換成java,因為他們家是專註做net c#,航空這個應該屬於新成立的,一切都在起步階段

他們的未來發展前進也很廣,同樣也很穩定,基本干到50歲不愁的那種。雖然最後只有2家面試通過,但是真的在面試中學習很多知識。理論的知識點,實際的操作內容。語言的溝通等等。

 

年底有一些前瞻性的公司已經開始做人才儲備,也就是屬於那種提前錄取批次,有想法的朋友可以更新一下簡歷和做一些筆試題。年後還應該是常年那樣的爆發一波招聘。

 

好了,祝大家前程似錦

 

本站聲明:網站內容來源於博客園,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

※如何讓商品強力曝光呢? 網頁設計公司幫您建置最吸引人的網站,提高曝光率!!

網頁設計一頭霧水??該從何著手呢? 找到專業技術的網頁設計公司,幫您輕鬆架站!

※想知道最厲害的台北網頁設計公司推薦台中網頁設計公司推薦專業設計師”嚨底家”!!

大陸寄台灣空運注意事項

大陸海運台灣交貨時間多久?

※避免吃悶虧無故遭抬價!台中搬家公司免費估價,有契約讓您安心有保障!

NASA 確定地軸飄移三大原因,人類活動改變了地球基本運作方式

摘錄自2018年9月25日科技新報報導

NASA 科學家收集整個20世紀的數據進行研究,近期發表在《地球與行星科學快報》的新論文,確認了共有3大原因造成地軸飄移:冰期後反彈、格陵蘭島冰蓋損失以及地函對流。其中,造成格陵蘭島冰蓋流失的罪魁禍首,正是人類活動引起的全球暖化。

地球系統科學家Surendra Adhikari表示,研究團隊設計出一套地球自旋物理學電腦模型,加入20世紀大陸冰川(冰蓋)與海水平衡變化的所有數據,終於找出影響地軸飄移至關重要的第2個原因:格陵蘭島冰蓋大量融化。

目前地球上僅存的大陸冰川只剩下南極洲與格陵蘭島,南極冰蓋覆蓋範圍約1,400萬平方公里,隨著20世紀氣溫上升加劇,格陵蘭冰蓋至今已有約7,500億噸的冰融化進入海洋,這導致地球質量分佈發生變化,進而使地軸飄移。一旦南極冰蓋融化,全球海平面將上升61.1公尺;格陵蘭冰蓋則占據格陵蘭島82%陸地面積,如果格陵蘭冰蓋融化,將導致海平面上升7.2公尺。這項研究明確顯示了人類活動正在改變地球的基本性質及運作方式。

本站聲明:網站內容來源環境資訊中心https://e-info.org.tw/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

※為什麼 USB CONNECTOR 是電子產業重要的元件?

網頁設計一頭霧水??該從何著手呢? 找到專業技術的網頁設計公司,幫您輕鬆架站!

※想要讓你的商品成為最夯、最多人討論的話題?網頁設計公司讓你強力曝光

※想知道最厲害的台北網頁設計公司推薦台中網頁設計公司推薦專業設計師”嚨底家”!!

※專營大陸快遞台灣服務

台灣快遞大陸的貨運公司有哪些呢?

奧地利一名果農因違法噴灑殺蟲劑,隸屬鄰近2個養蜂人超過50個蜂群因此死亡

奧地利一名果農因違法噴灑殺蟲劑,隸屬鄰近2個養蜂人超過50個蜂群因此死亡。26日奧地利克拉根福法院(Klagenfurt)以「蓄意危害環境」,判處果農1年有期徒刑,至少需服刑4個月才可假釋,以及賠償超過2萬歐元(2萬3500美元)。

這名47歲果農針對他位於奧地利卡林西亞省(Carinthia)拉萬特地區(Lavanttal)的果樹噴灑藥效強大的殺蟲劑陶斯松(chlorpyrifos),當時果樹的花仍會吸引蜜蜂前去。法院指出,以他的經驗和訓練他人的角色,足以證明他知道自身行為會帶來何種後果。

本站聲明:網站內容來源環境資訊中心https://e-info.org.tw/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

USB CONNECTOR掌控什麼技術要點? 帶您認識其相關發展及效能

※評比前十大台北網頁設計台北網站設計公司知名案例作品心得分享

※智慧手機時代的來臨,RWD網頁設計已成為網頁設計推薦首選

台灣海運大陸貨務運送流程

兩岸物流進出口一站式服務

鋰離子電池遇強敵,鋅空氣電池每 KWh 成本已低於 100 美元

摘錄自2018年10月1日科技新報報導

鋰離子電池雖然具有能量密度高、充放電速度快優勢,但容易短路起火、大規模裝置成本也偏高,普遍成本落在每 KWh 300-500 之間。對此,美國加州鋅空氣電池公司 NantEnergy 表示,鋅空氣電池每 KWh 成本比鋰離子電池還要低,已降至100 美元以下。

該電池陽極是由低成本與蘊含量豐富的鋅製成,陰極材料更是採用空氣中免費的氧氣,充電過程中,電力可將氧化鋅轉換成鋅與氧氣,以鋅當作儲存能量的方式,若有用電需求,鋅則會在空氣中氧化來產生電。資深工程師 Sherif Abdelrazek指出,鋅空氣電池不會像鋰離子電池那麼容易起火,不需要藉由外部冷卻系統來防止過熱,且具有成本優勢,相當適合發展大規模電池儲能系統。

本站聲明:網站內容來源環境資訊中心https://e-info.org.tw/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

※如何讓商品強力曝光呢? 網頁設計公司幫您建置最吸引人的網站,提高曝光率!!

網頁設計一頭霧水??該從何著手呢? 找到專業技術的網頁設計公司,幫您輕鬆架站!

※想知道最厲害的台北網頁設計公司推薦台中網頁設計公司推薦專業設計師”嚨底家”!!

大陸寄台灣空運注意事項

大陸海運台灣交貨時間多久?

※避免吃悶虧無故遭抬價!台中搬家公司免費估價,有契約讓您安心有保障!

奔馳首款純電動汽車將引入中國 最大續航里程200km

根據奔馳的新能源規劃,到2017年底插電式混合動力車將增加至10款,同時包括3款純電動車和1款在燃料電池車。在3款電動車型中,將分別為兩款Smart車型,以及一款B級車。

按照規劃奔馳B級電動車有望在今年內推出,根據官方車型公佈的資料,新車最大續航里程為200公里。

奔馳B級純電動車在海外又叫做B級Electric Drive,目前已在海外上市銷售,外觀造型上與普通版B級基本一致,能突出其純電動版身份的區別是,輪轂上配有藍色飾條,油箱蓋的位置也改為充電插口,並貼有充電標識,另外在尾部也有“ELECTRIC DRIVE”字樣表明其特殊身份。預計新車引入中國後與海外車型相差不大。

據瞭解,奔馳B級電動車的動力總成和電池系統由特斯拉提供,電動機的最大輸出功率為100千瓦,扭矩峰值可達到310牛米。該車的最大續航里程為200千米,使用快充插口可用1小時的充電時間達到100千米的續航里程。引入中國後,這款車的電池系統和動力總成是否進行升級還要繼續跟進消息。

在豪華品牌中寶馬的小型純電動車i3會與新車形成一定競爭,寶馬i3純電動版的電動機最大功率為125千瓦,高出奔馳B級電動車25千瓦;峰值扭矩250牛米,相比較之下i3底出60牛米。另外在電動車中最受關注的續航里程,寶馬i3為160千米,奔馳B級純電動在續航上有一定優勢。

在新能源車領域的規劃中,除了純電動車型,奔馳計畫到2017年共推出10款插電式混動車型,這些插電式混動車型將涵蓋多個車系,包括全新E級、GLC級和GLE級等。另外,奔馳與豐田共同合作研發的首款氫燃料電池車將在明年推出。

本站聲明:網站內容來源於EnergyTrend https://www.energytrend.com.tw/ev/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

※為什麼 USB CONNECTOR 是電子產業重要的元件?

網頁設計一頭霧水??該從何著手呢? 找到專業技術的網頁設計公司,幫您輕鬆架站!

※想要讓你的商品成為最夯、最多人討論的話題?網頁設計公司讓你強力曝光

※想知道最厲害的台北網頁設計公司推薦台中網頁設計公司推薦專業設計師”嚨底家”!!

※專營大陸快遞台灣服務

台灣快遞大陸的貨運公司有哪些呢?