appium+python+unittest+HTMLRunner登录自动化测试报告
环境搭建
python3
Java JDK
.netFramework
nodejs
android SDK
appium
Appium-Python-Client(pip install Appium-Python-Client)
连接设备
cmd打开命令行窗口
输入adb connect 127.0.0.1:62001连接模拟器
输入adb shell dumpsys window windows | findstr "Current"获取当前包名
启动appium
常用元素定位
driver.find_element_by_id
driver.find_element_by_class
driver.find_element_by_name
driver.find_element_by_xpath(//*[@text=‘text属性’])
编写登录脚本
#!/usr/bin/env python
# -*- coding: utf-8 -*-
from appium import webdriver
import unittest
import time desired_caps = {
'platformName': 'Android',
'platfromVersion': '5.1',
'deviceName': '127.0.0.1:62001',
'appPackge': 'com.xxxx.artstation',
'appActivity': 'com.xxxx.artstation.main.login.activity.LoginActivity'
} # TestCase类,所有测试用例继承的基本类
class LoginTest(unittest.TestCase):
# 测试前执行的初始化工作
def setUp(self):
self.driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps) # 测试用例执行后的善后工作。如关闭数据库连接,退出应用。无论写在哪,最后一个执行
def tearDown(self):
self.driver.quit() # 测试用例,必须以test开头
def test_login(self): self.driver.find_element_by_id('com.xxxx.artstation:id/tv_sure').click()
time.sleep(3) # 输入账号密码
self.driver.find_element_by_id(
'com.xxxx.artstation:id/clear_edittext_username').send_keys('158xxxxxxxx')
self.driver.find_element_by_id(
'com.xxxx.artstation:id/clear_edittext_password').send_keys('') # 点击登录按钮
self.driver.find_element_by_id(
'com.xxxx.artstation:id/tv_login').click
time.sleep(3)
自动生成测试报告
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import HTMLTestRunner
import unittest
from testcase import test_login if __name__ == '__main__':
# 实例化测试套件,定义一个测试容器
suite = unittest.TestSuite()
# 加载测试用例
suite.addTest(test_login.LoginTest('test_login')) # 使用discover方法批量加载运行测试用例
# suite= unittest.defaultTestLoader.discover('../testcase','test_*.py')
# runner = unittest.TextTestRunner() # 定义测试报告存放路径和报告名称
with open('HTMLReropt.html', 'wb')as f:
runner = HTMLTestRunner.HTMLTestRunner(
stream=f,
verbosity=2,
title='XX登录自动化测试报告',
description='执行人:嘻嘻'
)
runner.run(suite) # 关闭测试报告
f.close()

马蜂窝怎么增加粉丝 http://blog.sina.com.cn/s/blog_184e9f38b0102yyi5.html 马蜂窝游记推广 https://tieba.baidu.com/p/6427032866
appium+python+unittest+HTMLRunner登录自动化测试报告的更多相关文章
- appium+python+unittest+HTMLRunner编写UI自动化测试集
简介 获取AppPackage和AppActivity 定位UI控件的工具 脚本结构 PageObject分层管理 HTMLTestRunner生成测试报告 启动appium server服务 以py ...
- Appium python unittest pageobject如何实现加载多个case
学习了Appium python项目施展的课程小伙伴都会有一个疑问,说现在所有的case都是通过一个suite进行一个方法一个方法进行添加的,但是在实际过程中我们不希望这样,我们做出来的功能是这样: ...
- [python]Appium+python +pytest 实现APP自动化,基于安卓
1.安卓环境搭建 &关于app自动化,个人觉得安装过程比较复杂,脚本难度实现和web自动化差不多封装关键字即可,因此,下面会写安装.启动APP以及过程中遇到的一些坑(这一篇偏向解释给个人) & ...
- appium+python+unittest 测试用例的几种加载执行方式
利用python进行测试时,测试用例的加载方式有2种: 一种是通过unittest.main()来启动所需测试的测试模块: 一种是添加到testsuite集合中再加载所有的被测试对象,而testsu ...
- Python HTMLTestRunner生成网页自动化测试报告时中文编码报错UnicodeDecodeError: 'ascii' codec can't decode byte 0xe6
1. 由于使用Python Selenium做网页自动化测试时,有截取网页上的中文信息保存到测试结果中,最终出现编码错误如下: File "D:/PycharmProjects/AutoTe ...
- Appium python自动化测试系列之自动化截图(十一)
11.1 截图函数的正常使用 11.1.1 截图方法 无论是在手动测试还是自动化测试中场景复现永远是一个很重要的事情,有时候一些问题可能很难复现,这个都需要测试人员对bug有很高的敏感度,在一般的情况 ...
- (appium+python)UI自动化_08_unittest编写测试用例
前言 unittest是python自带的单元测试框架,类似于Junit(Java单元测试框架).支持自动化测试,可编写测试前置&后置条件,并且可批量运行测试用例并生成测试报告. 使用unit ...
- 接口自动化-python unittest+requests+HTMLrunner
从2015年毕业入行软件测试,快满4年了,之前技术分享都在百度贴吧上面,现在正式开始在博客中记录工作技术,努力成长,加油 接口测试的步骤1.组装好该接口需要的参数数据2.使用get或post附带参数数 ...
- (appium+python)UI自动化_09_unittest批量运行测试用例&生成测试报告
前言 上篇文章[(appium+python)UI自动化_08_unittest编写测试用例]讲到如何使用unittets编写测试用例,并执行测试文件.接下来讲解下unittest如何批量执行测试文件 ...
随机推荐
- python中[-1]、[:-1]、[::-1]、[n::-1]使用方法
import numpy as np a=np.random.rand(5) print(a) [ 0.64061262 0.8451399 0.965673 0.89256687 0.4851874 ...
- pycharm安装PIL失败
搜索安装PIL后无法成功安装,在尝试各种版本后依旧无法解决 问题解决 安装Pillow-PIL,既可以成功执行代码 因为pil没有64位的版本,所以需要下载安装第三方支持64位系统的版本才可以使用.
- Python3基础之数据类型(字符串和列表)
1.Python字符串方法 1.1.如何在Python中使用字符串 a.使用单引号(') 用单引号括起来表示字符串,例如: str1="this is string"; print ...
- 设计模式-03工厂方法模式(Factory Method Pattern)
插曲.简单工厂模式(Simple Factory Pattern) 介绍工厂方法模式之前,先来做一个铺垫,了解一下简单工厂模式,它不属于 GoF 的 23 种经典设计模式,它的缺点是增加新产品时会违背 ...
- php--->把json传来的stdClass Object类型转array
php把json传来的stdClass Object类型转array 1.Php中stdClass.object.array的概念 stdClass是PHP的一个基类,即一个空白的类,所有的类几乎都继 ...
- 容器技术与docker
名词介绍 IaaS:基础设施即服务,要搭建上层数据应用,先得通过互联网获得基础性设施服务 PaaS:平台即服务,搭建平台,集成应用产品,整合起来提供服务 SaaS:软件即服务,通过网络提供程序应用类服 ...
- 2020年大厂Java面试题(基础+框架+系统架构+分布式+实战)
前言 作为一个Java开发者,Java架构师应该是大家的一个职业目标了吧. 要成为Java架构师,首先你要是一个高级Java工程师,熟练使用各种框架,并知道它们实现的原理.jvm虚拟机原理.调优,懂得 ...
- 关于2D渲染的一些小想法
原文地址 概述 . 这个项目最初的目的是为了尝试解析现有的UI编辑器(MyGUI)导出的UI布局信息,通过ImGUI还原UI渲染.但是在开发过程中,我发现可以借此实现一个编辑器,一个我不断的寻找,但始 ...
- 图像GIST特征和LMGIST包的python实现(有github)
1什么是Gist特征 (1) 一种宏观意义的场景特征描述 (2) 只识别"大街上有一些行人"这个场景,无需知道图像中在那些位置有多少人,或者有其他什么对 ...
- C语言系列之预处理指令、循环左移函数的使用(四)
本章节将讲两个知识点 第一个知识点:常用的预处理指令 第二个知识点:循环左移右移函数 第一个知识点:预处理指令 一种预处理指令是#define,他把名字A定义为P0,当这个名字出现在源文件的任何地方时 ...