各位小伙伴好,閱讀這篇文章需要有基礎的python語言知識和軟件測試知識。
app測試在測試領域占比非常大,現在市場上有很多app軟件,對于app的測試就非常重要,特別是并發測試。接下來我們會介紹使用appium+pytest實現app的并發測試
首先來介紹一下appium是什么。Appium是一個開源,跨平臺的測試框架,可以測試原生及混合的移動端應用。
原生APP:就是專門針對某一類移動設備而生的,所有界面和代碼都是專門為平臺設計。
混合APP:指它的一部分是原生界面和代碼,而另一部分是內嵌web app。
說通俗一點,我們可以使用python語言編寫代碼,通過appium控制我們手機上的應用軟件來達到我們測試的目的
接下來介紹一下pytest是什么,pytest也是一個測試框架,這個框架內有很多api可以提供給我們使用,讓我們的測試更加簡單,也有很多插件,可以讓我們輕易的實現并發測試,使用該框架可以很便捷的搭建我們測試場景和執行測試用例
最后我們來介紹一下什么是并發,通過字面意思就是一起發生,在代碼中可以使用多進程或多線程來使用。映射到我們測試中就是多個人一起使用app中的某項功能,測試一下多人同時使用會不會發生問題,這種多人同時使用的場景在app中是非常多的。
上面介紹了appium,pytest,并發,下面我們就結合appium+pytest+python來進行并發測試app.
配置好所有的環境,安裝好需要的軟件,就開始編寫腳本。
直接上代碼,
#!/usr/bin/env python
# -*- coding:utf-8 -*-
#====#====#====#====
#Author:
#CreatDate:
#Version:
#====#====#====#====
importpytest
importtime
fromselenium importwebdriver
deftest_longQQ():
des = {} # 字典
des['platformName'] = 'Android'
des['platformVersion'] = '7.1.2'
des['deviceName'] = 'Android Emulator'
des['appPackage'] = 'com.tencent.qqlite'
des["noReset"] = True
des['appActivity'] = 'com.tencent.mobileqq.activity.RegisterGuideActivity'
# 連接appium
dr = webdriver.Remote('http://127.0.0.1:4723/wd/hub', des)
time.sleep(5)
#清空賬號
dr.findElementByAccessibilityId("請輸入QQ號碼或手機或郵箱").clear();
#輸入賬號
dr.findElementByAccessibilityId("請輸入QQ號碼或手機或郵箱").sendKeys("2062911635");
time.sleep(2)
#清空密碼
dr.findElementById("com.tencent.qqlite:id/password").clear();
#輸入密碼
dr.findElementById("com.tencent.qqlite:id/password").sendKeys("abc123456");
time.sleep(2)
#點擊登陸按鍵
dr.findElementById("com.tencent.qqlite:id/login").click();
#t如果為true,表示用例通過
t=dr.findElementById("com.tencent.mobileqq:id/login").isDisplayed()
assertt==True
if__name__ == "__main__":
pytest.main(['-s', '-n 4', "test_my.py"])#安裝了pytest-xdist,執行時添加-n參數,后面是數字代表并發的數量
注意點: 需要安裝pytest和pytest-xdist
個人理解,要實現appium+pytest實現app并發測試,重點是理解多進程或多線程,然后appium開啟多個服務,pytest只是讓我們更加便捷的搭建測試用例。
當然pytest有很多插件讓我們使用,這里用到了pytest-xdist這個插件,是他實現了多個進程去執行用例。
更多關于軟件測試培訓的問題,歡迎咨詢千鋒教育在線名師,如果想要了解我們的師資、課程、項目實操的話可以點擊咨詢課程顧問,獲取試聽資格來試聽我們的課程,在線零距離接觸千鋒教育大咖名師,讓你輕松從入門到精通。