平均响应时间: 所有请求的平均响应时间,取的平均值
95%percentile : 统计学术语,如果将一组数据从小到大排序,并计算相应的累计百分位,则某一百分位所对应数据的值就称为这一百分位的百分位数。可表示为:一组 n 个观测值按数值大小排列。如,处于 p% 位置的值称第 p 百分位数。
例如有 100 个请求, 每个请求的响应时间分别是 1-100 平均分布
平均响应时间: 1-100 的平均值,即 50.5
95% percentile : 按从小到大排序,累计第 95 百分位,也就是 95(即样本里 95% 的数据都不高于这个值)
可以看出为什么两个值差那么大了
你现在是在类内部调用 self ,是不会找到上面的定义吧?
你要调用 self.driver , 就首先得定义有 driver 这个属性啊
比如上面的 self.name、 self.func 都已经定义好了,就不会报错。
解决:
方法 1 : 加上 self.driver 的定义
方法 2: 从其他类把 driver 拿过来用
self.driver.get_screenshot_as_file
你定义的 take screenshot 这个类里没有 driver 属性
右键元素把 xpath 的值复制出来看看是否和你写的不一样
我的做法:自动化测试的数据都带上 autotest 的前缀,这样就很容易区分了
自动化测试都是机器执行的,所以这些成本不需要太在意。
重点是保证:1. 每条用例可以独立执行,用例之间减少耦合性 2. 每条用例都可以重复执行
发现你还写漏了一个 ()
应该是:
self.driver = AppiumTest().get_driver()
自己的代码,多调试调试吧,这样才能找到原因和进步
class Login(object):
def init(self,driver):
self.driver = AppiumTest.get_driver(driver)
你把 LoginPage.py 的 self.driver = AppiumTest.get_driver(driver) 改为 self.driver = AppiumTest.get_driver() 试下就知道效果了
你看你两个调用到 AppiumTest().get_driver() 方法的地方,一个传了 driver, 一个没有传,说明肯定有一个弄错了。
看你 AppiumTest().get_driver() 的定义是初始化 driver,所以是不需要传入 driver 的。
self.driver = AppiumTest.get_driver(driver)
改为
self.driver = AppiumTest.get_driver() 试试
你是想调用下面的 login 方法? 好像是调用错了吧
暂时还在内部试用,部分功能还在完善,待整理完成再共享出来
想看后面的 ‘放弃’
话说 PPT 转 PDF 的时候是否有问题呢? 看到有不少是空白页,比如这样:
Python+macaca /selenium/appium
Python 最后实现了这个方法吗? 例如想调用 Ctrl + - 实现页面缩小。
selenium 里面是可以的,macaca 怎么做都发现没效果。
我指的是模拟键盘操作,比如按 ctrl+C
输入是没问题的
不是输入不了,而是输入有遗漏?
下拉框可以使用 select 方法来操作。
语法: Select(object).select_by_value(value) \ Select(object).select_by_index(index)
具体可参考 selenium.webdriver.support.select.py 文件
重点调试下从 txt 里读取出来的数据对不对吧,加多几个输出看下
检查下你的脚本目录是否正确吧
最好截个图,不然别人没办法帮你检查的
自动化测试主要是为了节省将来回归测试的时间。
例如下次更新版本,要对所有接口功能回归一遍,如果仍然按人手去测试,需要 4 天/人; 如果跑自动化测试脚本,可能半小时就完成了。
自动化测试,执行的次数越高,越体现出它的价值。
webdriver 一般都提供两类查找元素的方法:
查找单个元素: find_element_by, 返回符合条件的第一个元素
查找多个元素: find_elements_by, 返回符合条件的所有元素
建议可以尝试用下面的方式,用 for 循环逐个点击
通过同样的方式应该也是可以解决的,具体可以看下 selenium 里 select 的实现