我这里有一份我之前写的一个 测试 2G,3G 网络下我们一个内部 APP 的登录时间 Demo,用的是 Appium For Windows。给你参考
# -*- coding:utf-8 -*-
'''
使用nose+appium的自动化测试用例EG1
作者:Archer_小A
http://www.diggerplus.org
'''
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
import os
import time
#相对路径转化为绝对路径
PATH=lambda x:os.path.abspath(
os.path.join(os.path.dirname(__file__),x)
)
#统计时长简单装饰器
def counttime(func):
def _wrapper(*args,**kwargs):
#开始时间
starttime=time.clock()
func(*args,**kwargs)
print "%s 花费时间为 %.3f 秒" % (func.__name__,time.clock()-starttime)
return _wrapper
class TestExample(object):
def __init__(self,desired_caps):
self.desired_caps=desired_caps
self.driver=webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)
#测试方法
def login(self):
#WebDriverWait元素定义超时时间
WebDriverWait(self.driver,10).until(EC.presence_of_element_located((By.NAME,"登 录")))
textfields=self.driver.find_elements_by_tag_name("textfield")
# textfields[0].send_keys("XXXXXX")
mypasswd="XXXXXXX"
#内部APP的一个BUG,这里做特殊处理
for i in reversed(range(0,len(mypasswd))):
textfields[1].send_keys(mypasswd[i])
time.sleep(1)
self.driver.find_element_by_name("登 录").click()
@counttime
def checklogintime(self):
WebDriverWait(self.driver,600).until(EC.presence_of_element_located((By.NAME,"消息")))
if __name__ == "__main__":
#初始化Appium配置
testone=TestExample(
{
'device':'Android',
'app':PATH(
'./TestApps/XXX_ent_android.apk'
),
'app-package':'com.XXX.XXX',
'app-activity':'com.XXX.XXX.SplashActivity'
}
)
#登录
testone.login()
testone.checklogintime()
看来新手帮助帖还要完善 @seveniruby @lihuazhang 楼主可以先看到这里http://testerhome.com/topics/496 虽然我没有过多地阐述如何在 windows 下使用 Appium,不过我还是建议你先看看这篇帖子,理论上 Appium For Windows 已经给你编译好了全部的东西,直接双击 exe 就可以了。
建议好好看看 Python 的 unittest,或者 Nose,这种框架本身就是支持调度的
TW 的持续集成框架 GO 已全面开源 http://www.go.cd/
#2 楼 @lihuazhang 辛苦了~
@driver.find_elements(:xpath, "//text[@clickable=true]") 这句是重点
好一个拖动,不错的思路~
作为盟友,强烈支持!我们都愿为此用心到底。借宝地厚脸皮一下:也欢迎各位测试人关注我们 DiggerPlus ( http://www.diggerplus.org DiggerPlus 是国内新锐测试人垂直内容博客,专注于挖掘测试工具,普及测试技术,专注于测试人能力提升,博客上线后就受到广大测试人的热烈追捧;此外,DiggerPlus 深度整合评测资源,揭秘科技数据和真相,让读者更懂科技,更好地把玩科技。 我们始终保持"独立,客观,严谨,优秀"的优良作风,努力为读者带来源源不断的优质内容。)
#1 楼 @seveniruby 说说我的看法吧~LR 处理后端信令场景的测试其实未尝不可,我们在实际项目中有过实施,甚至还尝试自写 puntch 过程来验证硬件某转发模块的 (SIP 协议) 队列处理能力,严格意义上来讲,LR 能够测试任何基于消息模型的产品,只不过国内 LR 盗版横行,别看各大论坛都在谈 LR,但是他的普及率其实真不算高...况且,让 TE 用 C 写一段复杂的后端测试脚本确实多少有点难度,导致了这块的案例非常少;再者,从模拟用户真实操作的角度上来讲,性能测试肯定是偏向于前端业务,以此来触发后端处理,从而验证系统的容量。拙见~哈哈~
这个可以有,对于新手来说帮助很大,不需要新手再去排查问题了。。
干货不解释~
#10 楼 @lizhenghuan 已加上友链~共同致力于普及高端测试技术,让测试人更有范儿~
赞~我将在 DiggerPlus 上推荐一把~
#33 楼 @seveniruby 我上面提供了一个 80 31 尺寸的友情链接小图。。seven 要的大图 大约多少尺寸?
#33 楼 @seveniruby 没事啦,那个,seven,问一下,你们 TesterHome 有木有 QQ 群?