整合營銷服務(wù)商

          電腦端+手機端+微信端=數(shù)據(jù)同步管理

          免費咨詢熱線:

          Java 快速開發(fā)平臺 platform-plus

          Java 快速開發(fā)平臺 platform-plus

          個前后端分離的Java快速開發(fā)平臺,基于SpringBoot2.X、Mybatis-Plus3.X。支持 Oracle、MySQL、DB2、Postgre、MariaDB、H2、HSQL、SQLite、SQLServer2005、SQLServer 等多種數(shù)據(jù)庫。

          項目說明

          • 后臺地址:https://gitee.com/fuyang_lipengjun/platform-plus
          • 前端地址:https://gitee.com/fuyang_lipengjun/platform-plus-ui

          優(yōu)勢

          • 嚴(yán)格遵循阿里編碼規(guī)約開發(fā),便于閱讀及二次開發(fā)
          • 支持 MySQL、MariaDB、Oracle、DB2、H2、HSQL、SQLite、Postgre、SQLServer2005、SQLServer 等多種數(shù)據(jù)庫
          • 實現(xiàn)前后端分離,通過token進行數(shù)據(jù)交互,前端再也不用關(guān)注后端技術(shù)
          • 靈活的權(quán)限控制,可控制到頁面和按鈕,滿足絕大部分的權(quán)限需求
          • 可在線生成vue、controller、entity、xml、dao、service、vue、sql代碼,增刪改查代碼一鍵生成,減少80%以上的開發(fā)任務(wù)
          • 引入quartz定時任務(wù),可動態(tài)完成任務(wù)的添加、修改、刪除、暫停、恢復(fù)及日志查看等功能
          • 引入API模板,根據(jù)token作為登錄令牌,極大的方便了APP接口開發(fā)
          • 引入Hibernate Validator校驗框架,輕松實現(xiàn)后端校驗
          • 引入云存儲服務(wù),已支持:七牛云、阿里云、騰訊云、本地存儲
          • 自定義實現(xiàn)swagger文檔支持,方便編寫API接口文檔
          • 使用Mybatis攔截器實現(xiàn)數(shù)據(jù)權(quán)限,對代碼侵入小

          技術(shù)選型:

          - Spring Boot 2.1.0.RELEASE
          - Apache Shiro 1.4.0
          - Spring MVC 5.1.2
          - MyBatis 3.5.0、MyBatis-Plus 3.1.0
          - Quartz 2.3.0
          - Druid 1.1.10
          - lombok 1.18.4
          - swagger 2.9.2
          - jwt 0.9.1
          - easypoi 4.0.0
          

          項目結(jié)構(gòu)

          platform-plus

          ├─sql 項目SQL語句

          ├─common 公共模塊

          │ ├─annotation 自定義注解

          │ ├─aspect 系統(tǒng)日志、redis存儲

          │ ├─exception 異常處理

          │ ├─interceptor 日志攔截器

          │ ├─session 分布式session管理

          │ ├─utils 工具類

          │ ├─validator 后臺校驗

          │ └─xss XSS過濾

          ├─config 配置信息

          ├─datascope 數(shù)據(jù)權(quán)限攔截器

          ├─datasources 多數(shù)據(jù)源

          ├─modules 功能模塊

          │ ├─app API接口模塊(APP調(diào)用)

          │ ├─gen 代碼生成模塊

          │ ├─job 定時任務(wù)模塊

          │ ├─oss 文件服務(wù)模塊

          │ ├─swaggerbootstrapui 自定義swagger文檔模塊

          │ └─sys 權(quán)限模塊

          ├─PlatformPlusApplication 項目啟動類

          ├──resources

          │ ├─gen 代碼生成工具

          │ ├─mapper SQL對應(yīng)的XML文件

          │ └─static 自定義swagger文檔

          實現(xiàn)功能

          - 系統(tǒng)管理
           - 菜單管理
           - 組織機構(gòu)
           - 系統(tǒng)參數(shù)
           - 字典管理
           - 文件上傳
           - 系統(tǒng)日志
          - 權(quán)限管理
           - 管理員列表
           - 角色管理
          - 短信平臺
           - 短信配置
          - 任務(wù)調(diào)度
           - 定時任務(wù)
          - 開發(fā)工具
           - 在線用戶管理
           - 緩存信息
           - SQL監(jiān)控
           - 接口文檔
           - 代碼生成器
          

          項目演示

          • 演示地址:http://fly2you.cn/platform-plus/#/login
          • 賬號密碼:
          • admin/admin
          • test/888888
          • test1/888888
          • test2/888888
          • test3/888888
          • test4/888888
          • test5/888888
          • test6/888888
          • test7/888888
          • test8/888888
          • test9/888888
          • test10/888888

          效果圖:

          • 菜單管理


          • 字典管理


          • 在線人數(shù)


          • 緩存數(shù)據(jù)


          • 接口文檔


          后端部署

          • 通過git下載源碼
          • 創(chuàng)建數(shù)據(jù)庫plaftorm-plus
          • mysql執(zhí)行sql/mysql.sql文件(oracle執(zhí)行sql/oracle.sql),初始化數(shù)據(jù)
          • 修改application-dev.yml,修改MySQL、Oracle驅(qū)動、賬號和密碼
          • Eclipse、IDEA運行PlatformPlusApplication.java,則可啟動項目
          • docker部署
          # 在centos7 ~ 創(chuàng)建一個文件夾docker,里面放置Dockerfile 和 mvn 打包的項目platform-plus.jar
          # 在該docker文件下 指令:
          docker build -t docker .
          # 運行 Docker Image
          docker run -d -p 8888:8888 docker
          
          • Swagger路徑:http://localhost:8888/platform-plus/doc.html

          個前后端分離的Java快速開發(fā)平臺,基于SpringBoot2.X、Mybatis-Plus3.X。支持 Oracle、MySQL、DB2、Postgre、MariaDB、H2、HSQL、SQLite、SQLServer2005、SQLServer 等多種數(shù)據(jù)庫。

          項目說明

          • platform-plus是一個輕量級的,前后端分離的Java快速開發(fā)平臺
          • JavaDoc:https://apidoc.gitee.com/fuyang_lipengjun/platform-plus/
          • 前端地址:https://gitee.com/fuyang_lipengjun/platform-plus-ui

          優(yōu)勢

          • 嚴(yán)格遵循阿里編碼規(guī)約開發(fā),便于閱讀及二次開發(fā)
          • 支持 MySQL、MariaDB、Oracle、DB2、H2、HSQL、SQLite、Postgre、SQLServer2005、SQLServer 等多種數(shù)據(jù)庫
          • 實現(xiàn)前后端分離,通過token進行數(shù)據(jù)交互,前端再也不用關(guān)注后端技術(shù)
          • 靈活的權(quán)限控制,可控制到頁面和按鈕,滿足絕大部分的權(quán)限需求
          • 可在線生成vue、controller、entity、xml、dao、service、vue、sql代碼,增刪改查代碼一鍵生成,減少80%以上的開發(fā)任務(wù)
          • 引入quartz定時任務(wù),可動態(tài)完成任務(wù)的添加、修改、刪除、暫停、恢復(fù)及日志查看等功能
          • 引入API模板,根據(jù)token作為登錄令牌,極大的方便了APP接口開發(fā)
          • 引入Hibernate Validator校驗框架,輕松實現(xiàn)后端校驗
          • 引入云存儲服務(wù),已支持:七牛云、阿里云、騰訊云、本地存儲
          • 自定義實現(xiàn)swagger文檔支持,方便編寫API接口文檔
          • 使用Mybatis攔截器實現(xiàn)數(shù)據(jù)權(quán)限,對代碼侵入小

          技術(shù)選型:

          - Spring Boot 2.1.0.RELEASE
          - Apache Shiro 1.4.0
          - Spring MVC 5.1.2
          - MyBatis 3.5.0、MyBatis-Plus 3.1.0
          - Quartz 2.3.0
          - Druid 1.1.10
          - lombok 1.18.4
          - swagger 2.9.2
          - jwt 0.9.1
          - easypoi 4.0.0
          

          項目結(jié)構(gòu)

          platform-plus
          ├─sql 項目SQL語句
          │
          ├─common 公共模塊
          │ ├─annotation 自定義注解
          │ ├─aspect 系統(tǒng)日志、redis存儲
          │ ├─exception 異常處理
          │ ├─interceptor 日志攔截器
          │ ├─session 分布式session管理
          │ ├─utils 工具類
          │ ├─validator 后臺校驗
          │ └─xss XSS過濾
          │ 
          ├─config 配置信息
          │ 
          ├─datascope 數(shù)據(jù)權(quán)限攔截器
          │ 
          ├─datasources 多數(shù)據(jù)源
          │ 
          ├─modules 功能模塊
          │ ├─app API接口模塊(APP調(diào)用)
          │ ├─gen 代碼生成模塊
          │ ├─job 定時任務(wù)模塊
          │ ├─oss 文件服務(wù)模塊
          │ ├─swaggerbootstrapui 自定義swagger文檔模塊
          │ └─sys 權(quán)限模塊
          │ 
          ├─PlatformPlusApplication 項目啟動類
          │ 
          ├──resources 
          │ ├─gen 代碼生成工具
          │ ├─mapper SQL對應(yīng)的XML文件
          │ └─static 自定義swagger文檔
          

          實現(xiàn)功能

          - 系統(tǒng)管理
           - 菜單管理
           - 組織機構(gòu)
           - 系統(tǒng)參數(shù)
           - 字典管理
           - 文件上傳
           - 系統(tǒng)日志
          - 權(quán)限管理
           - 管理員列表
           - 角色管理
          - 短信平臺
           - 短信配置
          - 任務(wù)調(diào)度
           - 定時任務(wù)
          - 開發(fā)工具
           - 在線用戶管理
           - 緩存信息
           - SQL監(jiān)控
           - 接口文檔
           - 代碼生成器
          

          項目演示

          • 演示地址:http://fly2you.cn/platform-plus/#/login
          • 賬號密碼:
          • admin/admin
          • test/888888
          • test1/888888
          • test2/888888
          • test3/888888
          • test4/888888
          • test5/888888
          • test6/888888
          • test7/888888
          • test8/888888
          • test9/888888
          • test10/888888

          效果圖:

          • 菜單管理


          • 字典管理


          • 在線人數(shù)


          • 緩存數(shù)據(jù)


          • 接口文檔


          后端部署

          • 通過git下載源碼
          • 創(chuàng)建數(shù)據(jù)庫plaftorm-plus
          • mysql執(zhí)行sql/mysql.sql文件(oracle執(zhí)行sql/oracle.sql),初始化數(shù)據(jù)
          • 修改application-dev.yml,修改MySQL、Oracle驅(qū)動、賬號和密碼
          • Eclipse、IDEA運行PlatformPlusApplication.java,則可啟動項目
          • Swagger路徑:http://localhost:8888/platform-plus/doc.html

          地址:

          https://gitee.com/fuyang_lipengjun/platform-plus

          ppium是什么

          Appium是一款用于測試MobileApp的開源自動化測試框架。它是通過使用WebDriver[Facebook開源]協(xié)議來測試iOS,Android,WindowsApp的。WebDriver與Selenium有著千絲萬縷的聯(lián)系,很多方法的使用都很相似。

          Appium支持多種語言。

          >>Ruby

          >>Python

          >>Java

          >>JavaScript

          >>PHP

          >>C#

          >>Objective-C

          根據(jù)先后順序,官方的支持力度也不同。Ruby官方支持的最好(Appiumconsole就是使用Ruby開發(fā)的)。

          Appium iOS測試環(huán)境搭建方法

          Appium分為UI版本與命令行版本兩種。不同在于UI版本的自帶有圖形界面,用戶體驗相對于命令行版本好。

          常見依賴庫的搭建

          1.安裝libimobiledevice

          2.安裝 appium-doctor

          代碼1:npm install appium-doctor -g

          appium-doctor --ios // appium-doctor 安裝完成后執(zhí)行,查看 iOS 相關(guān)配置是否成功。如果存在紅叉情況,安裝對應(yīng)的工具就可以了。

          代碼2:![appium_doctor_test.png](https://upload-images.jianshu.io/upload_images/2159939-f8cbccea99fc3bda.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

          3.下載 WebDriverAgent

          >>進入下載后的 WebDriverAgent 文件夾

          >>執(zhí)行 ./Scripts/bootstrap.sh

          >>直接用Xcode打開 WebDriverAgent.xcodepro 文件

          >>配置WebDriverAgentLib和WebDriverAgentRunner的證書

          >>連接并選擇自己的iOS設(shè)備,然后按Cmd+U,或是點擊Product->Test

          >>運行成功時,在Xcode控制臺應(yīng)該可以打印出一個Ip地址和端口號

          命令行版本的搭建

          1.安裝 Appium

          2.替換 WebDriverAgent

          使用上面修改過的 WebDriverAgent 替換/usr/local/lib/node_modules/appium/node_modules/appium-xcuitest-driver 此處的WebDriverAgent

          UI 版本的搭建

          1.下載Appium Desktop

          2.替換 WebDriverAgent

          使用上面修改過的 WebDriverAgent 替換/Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/appium-xcuitest-driver/ 此處的WebDriverAgent

          開發(fā)環(huán)境搭建

          1.安裝 Appium Python 環(huán)境搭建

          安裝 Appium 的時候遇到的錯誤

          1. 未能載入軟件包“WebDriverAgentRunner”,因為它已損壞或丟失必要的資源。 請嘗試

          2.AssertionError: Message: An unknown server-side error occurred while processing the command. Original error: Unknown device or simulator UDID: '*'

          3.Could not initialize ios-deploy make sure it is installed (npm install -g ios-deploy) and works on your system

          4.npm install -g ios-deploy 失敗問題的解決方法

          Appium 使用

          Appium-Desktop 的使用

          >>準(zhǔn)備一個 ipa 或者 app 包。

          >>運行Appium-Desktop

          >>開啟start server

          >>點擊start new session

          >>在 Desired Capabilities 中輸入相關(guān)的參數(shù)后點擊Start Session

          >>運行成功后,會彈出一個控制界面,在該界面中可以控制手機上正在運行的程序

          >>點擊界面上方中心的錄制按鈕,可以將你對手機端的操作代碼化。生成的代碼可以直接放入指定的代碼中去執(zhí)行。

          >>在 UI 界面上我們可以查看App UI 層次結(jié)構(gòu),可以選擇對應(yīng)的控件。可以查看選中的 UI 控件的各種值(下圖右下角所示),也可以對選中的空間進行點擊,輸入值,清空值操作

          >>如上圖所示。我們還可以針對需要使用坐標(biāo)系統(tǒng)(不通用。因為不同的設(shè)備分辨率不同)點擊,手勢操作等。

          關(guān)于在代碼中如何使用 Appium

          本例中使用 Python 為主要部分。

          1.連接 Appium

          path="/Users/jack/Desktop/xx/xx/xx.ipa"

          desired_caps={

          'app': os.path.abspath(path),

          'platformName': 'iOS',

          'platformVersion': '11.2.2',

          'deviceName': 'iPad',

          'udid': 'xxx',

          'showIOSLog': 'true'

          }

          command_executor='http://127.0.0.1:4723/wd/hub'

          appium_driver=webdriver.Remote(command_executor=command_executor, desired_capabilities=desired_caps)

          ```

          **appium_driver** 就是我們需要的接入點。

          2.獲取當(dāng)前頁面層次結(jié)構(gòu)

          page_source 是 XML 文本。例子解析 XML 之后就可以看到整個頁面的布局。

          注意: 論壇中有說過當(dāng)頁面數(shù)據(jù)過多的時候,可能會出現(xiàn)超時錯誤問題。

          3.查找指定的 UI 元素

          查找 UI 元素的方式有很多種。

          >>AccessibilityIdentifier 方式查找。推薦

          >>AccessibilityIdentifier 方式查找。不推薦,但是必須的時候還是要用

          4.獲取查找到的控件的值

          5.已經(jīng)查找到的控件點擊,輸入值,清空值操作

          6.長按操作

          7.簡單的手勢滑動操作

          8.等待頁面消失

          try:

          # 在 60s 每隔 0.5s 檢查是否 view 消失

          WebDriverWait(driver, 60, 0.5, ElementNotVisibleException).until_not(lambda x: x.find_element_by_accessibility_id(view).is_displayed())

          except TimeoutException, e:

          print("time out message")

          raise e

          9.等待頁面出現(xiàn)

          try:

          # 在 60s 每隔 0.5s 檢查是否 view 出現(xiàn)

          WebDriverWait(driver, 60, 0.5, ElementNotVisibleException).until(lambda x: x.find_element_by_accessibility_id(view).is_displayed())

          except TimeoutException, e:

          print("time out message")

          raise e

          iOS 設(shè)備獲取對應(yīng)的控件的方法

          對于 iOS 端,WebDriver 使用了蘋果提供的 Accessibility Inspector 來獲取頁面層次。因此,在編寫代碼的時候,需要設(shè)置

          iOS 代碼使用 Appium 建議條件滿足isAccessibilityElement為 true。同時accessibilityIdentifier建議有值。這樣查找的時候在編寫代碼會更加便捷。否則就需要如下的方式去查找:

          driver.find_element_by_xpath("http://XCUIElementTypeApplication[@name=\"LLL\"]/XCUIElementTypeWindow[1]/XCUIElementTypeOther/XCUIElementTypeOther/XCUIElementTypeOther/XCUIElementTypeOther/XCUIElementTypeOther/XCUIElementTypeOther/XCUIElementTypeOther/XCUIElementTypeOther/XCUIElementTypeOther/XCUIElementTypeOther/XCUIElementTypeOther/XCUIElementTypeCollectionView/XCUIElementTypeCell")

          上面的代碼是去查找一個 tableview cell。當(dāng)然我們可以使用 UI 工具獲取到。但是當(dāng)頁面 ui 層次變更了,估計改動的時候會有想死的感覺了。

          iOS 設(shè)備使用 Appium 的條件

          1. 運行 Mac 系統(tǒng)的電腦。
          2. 提供一個可以安裝到真機上的 ipa 或者 app 包。
          3. Mac 系統(tǒng)建議安裝 Xcode 環(huán)境。

          iOS 設(shè)備使用 Appium 的限制

          1. 同一臺電腦只能運行一個測試實例(沒有研究出來多個測試)
          2. 測試 case 編寫者必須清楚的知道自己在找什么,需要到哪里去找。
          3. Appium 只能針對已知的數(shù)據(jù)進行測試。對于未知的數(shù)據(jù)無法進行測試。例如:服務(wù)器端更新 server 的數(shù)據(jù)而沒有通知 app 端。app 端仍然按照舊的數(shù)據(jù)去測試判斷,就會出現(xiàn)錯誤。而這種錯誤不是 app 本身的錯誤。而由人測試的時候這里就會有主管判斷為什么出現(xiàn)這種問題,中斷去查找問題來源。
          4. 測試速度慢。目前來看可以接受
          5. 每次測試的時候都是重新安裝 app。因此無法進行升級類的測試[對應(yīng)的 install、uninstall api 不可用]
          6. 快速點擊操作不可用,個別因為用戶手速過快點擊導(dǎo)致的問題會無法測試。因為Appium API 時延比較高。
          7. 設(shè)備橫屏(在 iPad 上測試)的時候無法進行測試
          8. Scrollview/TableView/CollectionView 滾動的問題(swap 手勢模擬有的時候很慢。一分鐘都沒反應(yīng)完)。
          9. 關(guān)于通知推送,點擊沒有查到對應(yīng)的測試資料。
          10. 內(nèi)嵌,外部跳轉(zhuǎn) web 頁面的測試沒有驗證過。
          11. Crash Log 以及運行時候的 log(設(shè)備的)無法收集。
          12. Emoji 表情輸入沒研究出來。目前看只能通過鍵盤點擊達到這個效果,但是不方便。
          13. 因為時延較高,查找類頁面在輸入值的時候,應(yīng)該清空頁面顯示,然后根據(jù)返回值顯示。這部分不好測試。容易出現(xiàn)紕漏。

          關(guān)于測試結(jié)果反饋

          Appium 只是一款測試 Mobile 端 app 的框架。其本身的操作僅限于針對 App 進行測試,不具備生成測試結(jié)果,發(fā)送郵件等功能。如果想要該功能,需要在調(diào)用 Appium 的語言環(huán)境上思考。

          由于 Demo 中使用的是 Python,因此使用 HTMLTestRunner 生成 html 格式的測試報告是最合適的方式。并且根據(jù) Python 編程發(fā)送郵件給指定的用戶。

          1. 在 case 中。如果斷言錯誤,即已知結(jié)果不是想要的結(jié)果,可以使用斷言使測試生成斷言錯誤。這樣就可以生成失敗的測試 case 報告。
          2. 出現(xiàn) Error 的時候有可能是由于 Python 代碼本身不嚴(yán)謹(jǐn)造成的錯誤。因此當(dāng)有 Error 錯誤的時候,首先考慮是否是 Python 代碼的問題,其次考慮 App 錯誤。
          3. 沒有錯誤,測試成功。

          主站蜘蛛池模板: 天天躁日日躁狠狠躁一区| 麻豆精品一区二区综合av| 蜜臀AV在线播放一区二区三区| 色国产在线视频一区| 国产激情一区二区三区四区 | 少妇无码一区二区二三区| 一区二区三区四区精品视频| 日本高清一区二区三区| 日韩精品一区二区午夜成人版 | 久久久久久人妻一区精品| 在线中文字幕一区| 日本免费精品一区二区三区| 久久se精品一区二区国产| 精品国产一区二区三区久| 亚洲老妈激情一区二区三区| 亚洲第一区视频在线观看| 国模极品一区二区三区| 精品一区二区久久| 国产人妖在线观看一区二区| 久久久久人妻精品一区蜜桃 | 夜夜嗨AV一区二区三区| 波多野结衣一区二区三区| 国产精品亚洲产品一区二区三区 | 国产欧美色一区二区三区| 影院无码人妻精品一区二区| 无码国产精品一区二区免费式芒果 | 国产一区二区三精品久久久无广告 | 视频一区二区在线观看| 一区二区三区观看免费中文视频在线播放 | 海角国精产品一区一区三区糖心 | 国产色欲AV一区二区三区| 一区二区三区四区免费视频| 一区二区三区在线|日本| 亚洲国产欧美一区二区三区| 波多野结衣AV无码久久一区| 国产a久久精品一区二区三区| 九九久久99综合一区二区| 亚洲一区二区三区在线视频| 伊人无码精品久久一区二区| 亚洲欧洲∨国产一区二区三区| 美女视频一区二区|