Skip to content
Test Automation Framwork base on appium,python3
Python
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
apk
base
data
exception
page
screenshot
test
utils
.gitignore
README.md
run.py
s.py
sDoc.txt
watch_dog.py

README.md

Link

移动端自动化测试系列之一——Appium环境搭建

移动端自动化测试系列之二——pytest入门详解

移动端自动化测试系列之三——Allure测试报告

移动端自动化测试系列之四——生成定位元素

移动端自动化测试系列之五——AppiumLich框架使用

Environment

Python3:

brew install python3
pip3 install <name>
  • Appium-Python-Client
  • Jinja2
  • PyYAML
  • pytest
  • pytest-allure-adaptor
  • watchdog
  • termcolor (not needed)

Appium

npm install -g appium
npm install -g appium-doctor

appium-doctor to ensure your system is set up properly

more

Allure-Commandline

Allure Framework is a flexible lightweight multi-language test report tool with the possibility to add screenshots, logs and so on. It provides modular architecture and neat web reports with the ability to store attachments, steps, parameters and many more.

brew tap qatools/formulas 
brew install allure-commandline

TODO: use Jenkins Plugin

more

Run Test

start appium service:

appium --address 127.0.0.1 --port 4723 --log "log_path" --log-timestamp --local-timezone --session-override

run test:

cd project_path
python3 run.py

Html-Report will be generate on project_path/report/html/index.html

report shot:

Write Test Case

开启watchdog

cd project_path
python3 watch_dog.py

打开 project_path/page/yaml/xxx_page.yaml,以下面模板定位元素:

---
LoginPage:
  dec: 登录页面
  locators:
    -
      name: 注册
      timeOutInSeconds: 20
      type: name
      value: 注册

写测试case

class TestLogin:
    def test_login(self, action: ElementActions):
        L.d('test_login')
        account = Steps.get_account()
        action.click(HomePage.登录入口)
        action.text(LoginPage.账户, account[0])
        action.text(LoginPage.密码, account[1])
        action.sleep(1)
        action.click(LoginPage.登录)
        assert action.is_toast_show('欢迎回来')

ChangeLog

  • 将原先所有元素全都写在 pages.yaml中方式改为可拆分的形式(xxx_page.yaml),方便管理.详见: /page/yaml/

TODO

  • 兼容iOS
  • 集成 stf

License

MIT

You can’t perform that action at this time.