#18 楼 @a_little 目前不兼容 python3,不过从报错原因来看是因为 configparser 没获取到 minicap 的绝对路径,你可以直接手动配置 data/test.ini 文件。配置说明你可以看 doc 内的 parameter_configuration.md。把里面所有的字段都给手动配置了。
#21 楼 @Jhon 没访问到包,你也手动配置 data/test.ini 的参数信息后,然后运行 po.integration.py。这是单线程的方法,可以获取到更详细的报错信息
我在 windows,linux,macos 上都运行测试过,所以大多错误应该是环境的问题,可以看项目里写的详细文档
建议 Python 新手首次运行使用 pycharm,用强大的 ide 如同老师可以帮你处理很多事情。
#17 楼 @seveniruby
拿 python requests 作为举例
{
"code": 200,
"msg": "success",
"data": {
"user_nick": "cntao",
"settings": {
"nick": "t",
},
{ "test":{
"name":"xiaozhang" }
}
{ "test":"b"
}
"vip_level": 2,
}
}
import requests
req = requests.get('http://testerhome.com/xx').json()
print req['code']
print req['data']['user_nick']
print req['data']['settings']['nick']
print req['data'][0]['test']
print req['data'][0]['test']['name']
输出:
#7 楼 @seveniruby 请教一下,看这个文档类似 python 的 requests 模块,和 java 的 okhttp 模块,只看出是一个请求框架,测试框架的特性展示在什么地方?
举个 python 的例子
import requests
req = requests.get(url='www.testerhome.com/xxx')
print req.json()
#json格式
print req.status_code
#状态码
截图存储的 api 是:self.driver.save_screenshot()
self.driver.save_screenshot(file_path)
你需要仔细看错误提示
解决方法:adb -s [device_name] tcpip 5556
adb connect 可以连接大量设备,我这边测试过 10 台 +
实现起来不难,贴下我实现的代码吧
def start_appium(self):
"""
启动appium
p:appium port
bp:bootstrap port
:return: 返回appium端口参数
"""
aport = random.randint(4700, 4800)
bpport = random.randint(4700, 4800)
U.cmd("appium -p %s -bp %s -U %s" %
(aport, bpport, self.device)) # 启动appium
U.Logging.success('start appium :p %s bp %s' % (aport, bpport,))
U.sleep(10)
return aport
def start_appium(self):
"""
启动driver
:return:
"""
number_of_starts = 0
while number_of_starts < 6:
try:
self.driver = webdriver.Remote(
'http://0.0.0.0:%s/wd/hub' %
self.__get_appium_port(), self.device_l)
U.Logging.debug('appium start success')
return self.driver
except Exception as e:
number_of_starts += 1
U.Logging.error('Failed to start appium :{}'.format(e))
U.Logging.error(
'Try restarting the appium,Trying the {} frequency'.format(number_of_starts))
U.sleep(5)
if number_of_starts == 4:
U.Logging.error('Can not start appium, the program exits')
exit()
3.关于多进程,使用 multiprocessing,检查设备数量,同时开启每个设备的进程,实现并行测试
import testcase.Integration
from multiprocessing import Pool
def case_sun(device):
a = testcase.Integration.RunApp(device)
a.case_start()
device_list = testcase.Integration.get_device_info()
pool = Pool(len(device_list))
pool.map(case_sun, device_list)
pool.close()
pool.join()
效果图
可以不写 appActivity,注释掉试试
HI,我叫 Joko。现在正在加班。
来 testerhome 这两个月认识到了自己学识浅陋。每个人都那么上进,积极。
既然来到了这个集体,你们能做到,我也会努力靠近大家。现在每天都会或多或少学习测试技能~
之前缺乏同行交流,很缺乏测试理论知识,希望能和大家学习分享。