第一个appium测试用例
from time import sleep
from appium import webdriver
import pytest class TestXueqiu: user_profile_id = "user_profile_icon"
login_more_id = "iv_login_more"
login_account_id = "login_account"
login_password_id = "login_password"
button_next_id = "button_next"
md_content_id = "md_content"
md_buttonDefaultPositive_id = "md_buttonDefaultPositive"
action_back_id = "iv_action_back"
buttonDefaultNegative_id = "md_buttonDefaultNegative"
action_back1_id = "action_back"
home_search_id = "home_search"
search_input_text_id = "search_input_text"
search_name_id = "name"
stockName_id = "stockName"
action_close_id = "action_close" def setup_class(self): caps = {}
caps["platformName"] = "Android"
caps["platformVersion"] = "8.1.0"
caps["deviceName"] = "60c106df0302"
caps["appPackage"] = "com.xueqiu.android"
caps["appActivity"] = ".view.WelcomeActivityAlias"
caps["noReset"] = True self.driver = webdriver.Remote("http://localhost:4723/wd/hub", caps)
self.driver.implicitly_wait(20) def test_wrong_phone(self): self.driver.find_element_by_id(self.user_profile_id).click()
self.driver.find_element_by_id(self.login_more_id).click()
login_account = self.driver.find_element_by_id(self.login_account_id)
login_account.clear()
login_account.send_keys("1311111111111111111")
login_password = self.driver.find_element_by_id(self.login_password_id)
login_password.clear()
login_password.send_keys("123456abc")
self.driver.find_element_by_id(self.button_next_id).click()
text = self.driver.find_element_by_id(self.md_content_id).get_attribute("text")
assert text == "手机号码填写错误"
self.driver.find_element_by_id(self.md_buttonDefaultPositive_id).click() def test_wrong_password(self):
login_account = self.driver.find_element_by_id(self.login_account_id)
login_account.clear()
login_account.send_keys("15958020294")
login_password = self.driver.find_element_by_id(self.login_password_id)
login_password.clear()
login_password.send_keys("123456abc111")
self.driver.find_element_by_id(self.button_next_id).click()
text = self.driver.find_element_by_id(self.md_content_id).get_attribute("text")
assert text == "用户名或密码错误"
self.driver.find_element_by_id(self.md_buttonDefaultPositive_id).click()
self.driver.find_element_by_id(self.action_back_id).click()
self.driver.find_element_by_id(self.buttonDefaultNegative_id).click()
self.driver.find_element_by_id(self.action_back1_id).click() @pytest.mark.parametrize(("search", "result"), [
("alibaba", "阿里巴巴"), ("xiaomi", "小米"), ("google", "谷歌")
])
def test_search(self, search, result):
self.driver.find_element_by_id(self.home_search_id).click()
self.driver.find_element_by_id(self.search_input_text_id).send_keys(search)
self.driver.find_elements_by_id(self.search_name_id)[0].click()
text = self.driver.find_elements_by_id(self.stockName_id)[0].get_attribute("text")
assert result in text
self.driver.find_element_by_id(self.action_close_id).click() def teardown_class(self):
sleep(5)
self.driver.quit()
第一个appium测试用例的更多相关文章
- Appium(四):真实机第一个appium程序、模拟器第一个appium程序、查看元素
1. 真实机第一个appium程序 学完了前面的知识,也将环境搭建好了,接下来我们就正式开始appium的学习了. 在做app自动化的时候,我们肯定是针对某个产品.某个软件进行测试,那么我们一定是先让 ...
- appium学习【四】:第一个appium脚本
#coding=utf-8 import os import HTMLTestRunner import unittest import time import sys from appium imp ...
- 一个appium 博客
http://www.cnblogs.com/tobecrazy/category/699177.html appium Java控制Appium server start/stop 摘要: 相信很多 ...
- 第二章 mac上运行第一个appium实例
一.打开appium客户端工具 1 检查环境是否正常运行: 点击左边第三个图标 这是测试你环境是否都配置成功了 2 执行的过程中,遇到Could not detect Mac OS ...
- 测试工具之Jmeter(创建一个简单测试用例)
前面介绍了如何使用badboy录制jmeter脚本,以及如何导入脚本并进行测试 这里介绍下手动创建测试用例,主要步骤如下: 1.创建线程组 第一次打开Jmeter只有一个测试计划,右键“测试计划”选择 ...
- 第一个appium的Demo
原文来自:一颗糖果 http://www.cnblogs.com/linglingyuese/articles/8418311.html 一.环境搭建 略(后期补) 二.创建一个测试apk包的项目 ...
- XMind2TestCase:一个高效测试用例设计的解决方案!
一.背景 软件测试过程中,最重要.最核心就是测试用例的设计,也是测试童鞋.测试团队日常投入最多时间的工作内容之一. 然而,传统的测试用例设计过程有很多痛点: 1.使用Excel表格进行测试用例设计,虽 ...
- Python编写Appium测试用例(1)
有段时间没有使用python编写测试用例了,很长时间以来,感觉appium这个测试工具确实不错,今天又重新拿起来,分享一下自己学习的一些用例,欢迎大家一起交流.学习! 1.登录客户端 #coding= ...
- Appium移动自动化测试-----(六)4.运行第一个Appium脚本
新建maven空白工程 前置条件:安装eclipse或IntelliJ IDEA,及其maven插件,请自行百度 新建的工程如下: 新建目录apps,并将下载的安装包,拷贝到该目录下 打开POM增加依 ...
随机推荐
- 基于bootstrap 在同一个界面弹出不同的模态框
同一个页面如何操作多个模态框的弹出 <button class="btn btn-info" data-toggle="modal" data-targe ...
- vue3.0 vue.config.js 配置实战
今天讲述一下vue-config.js配置,我们前面搭建好脚手架会发现,这个对比2.x版本少了很多东西,没有build的配置,也没有webpack的配置,那么问题来了,我们如何去开发我们的项目呢,比如 ...
- e课表项目第二次冲刺周期第五天
昨天干了什么? 昨天,我们组商量了主界面的主要设计,然后我查找了相关的资料,将主界面改成了一个连接数据库,并将数据库中的数据进行显示.接着,又在网上搜了一些资料,为数据建立了一个布局,能够显示该数据的 ...
- 基于STM32F429和HAL库的CAN收发例程
1.CAN协议介绍 CAN 是 Controller Area Network 的缩写(以下称为 CAN),是 ISO 国际标准化的串行通信协议.在当前的汽车产业中,出于对安全性.舒适性.方便性.低公 ...
- requests模块(post)请求篇
'''利用parse模块模拟post请求分析百度词典分析步骤:1. 打开F122. 尝试输入单词girl,发现每敲一个字母后都有请求3. 请求地址是 http://fanyi.baidu.com/su ...
- 算法学习之剑指offer(四)
题目1 题目描述 输入两棵二叉树A,B,判断B是不是A的子结构.(ps:我们约定空树不是任意一个树的子结构) /** public class TreeNode { int val = 0; Tree ...
- AWD攻防工具脚本汇总(二)
情景五:批量修改ssh密码 拿到官方靶机第一件事改自己机器的ssh密码,当然也可以改别人的密码~ import paramiko import sys ssh_clients = [] timeout ...
- PHP array_unshift
1.函数的作用:在数组的开头插入一个或者多个元素 2.函数的参数: @params array &$array @params mixed $value1 @params mixed ...
- Cocos2d-x 学习笔记(16) 触摸事件与分发 EventTouch dispatchTouchEvent EventListenerTouch
1. EventTouch 触摸事件的成员变量:枚举EventCode.存储Touch的容器. 不同的EventCode代表不同时机的触摸事件,能让监听器调用不同的回调函数. enum class E ...
- std::weak_ptr
weak_ptr 是一种不控制对象生命周期的智能指针, 它指向一个 shared_ptr 管理的对象. 进行该对象的内存管理的是那个强引用的 shared_ptr. weak_ptr只是提供了对管理对 ...