Appium-doctor不是内部命令

解决方法:

把安装的appium文件夹的Appium\node_modules\.bin加到环境变量PATH里

性能测试知多少—性能分析与调优的原理

  最近一直纠结性能分析与调优如何下手,先从硬件开始,还是先从代码或数据库。从操作系统(CPU调度,内存管理,进程调度,磁盘I/O)、网络、协议(HTTP, TCP/IP ),还是从应用程序代码,数据库调优,中间件配置等方面入手。

  单一个中间件又分web中间件(apache 、IIS),应用中间件(tomcat 、weblogic 、webSphere )等,虽然都是中间件,每一样拎出来往深了学都不是一朝一夕之功。但调优对于每一项的要求又不仅仅是“知道”或“会使用”这么简单。起码要达到“如何更好的使用”。

  常看到性能测试书中说,性能测试不单单是性能测试工程师一个人的事儿。需要DBA 、开发人员、运维人员的配合完成。但是在不少情况下性能测试是由性能测试人员独立完成的,退一步就算由其它人员的协助,了解系统架构的的各个模块对于自身的提高也有很大帮助,同进也更能得到别人的尊重。
阅读剩余部分 –

LR性能测试结果样例分析 测试结果分析

LR性能测试结果样例分析
  • 测试结果分析

    LoadRunner性能测试结果分析是个复杂的过程,通常可以从结果摘要、并发数、平均事务响应时间、每秒点击数、业务成功率、系统资源、网页细分图、Web服务器资源、数据库服务器资源等几个方面分析,如图1- 1所示。性能测试结果分析的一个重要的原则是以性能测试的需求指标为导向。我们回顾一下本次性能测试的目的,正如 所列的指标,本次测试的要求是验证在30分钟内完成2000次用户登录系统,然后进行考勤业务,最后退出,在业务操作过程中页面的响应时间不超过3秒,并且服务器的CPU使用率、内存使用率分别不超过75%、70%,那么按照所示的流程,我们开始分析,看看本次测试是否达到了预期的性能指标,其中又有哪些性能隐患,该如何解决。

图1- 1性能测试结果分析流程图

阅读剩余部分 –

自己都不敢相信-如此系统全面的思维导图

三天前,发布了第一版“软件测试全景图”思维导图(Mind Map):这才是世上最全的“软件测试”思维导图!比 TheTestingMap.org 的思维导图更受欢迎,用户点击量翻番,点击次数超万,浏览用户数到目前为止接近7000。趁着这股热情,对上一个版本做了进一步的完善,补充了较多缺失的内容,调整了不合理的分类,并减少了一个模块“自动化测试(TA)”,将其核心内容并入技术,因为自动化更应该看作是软件测试的技术;而将各类工具和其它内容(MBT、单元测试、性能测试等)融合在一起,更有利于读者的使用。从整体图形看(虽然现在还看不清楚,但能看到体量),加长了不少,这也说明这张思维导图更加全面、系统,更具价值。 阅读剩余部分 –

移动端测试注意点

1.兼容性(系统版本、屏幕大小,UI版本)

2.网络切换(3G4G切2G,wifi切4G,网络限速,突然断网,离线,移动、联通、电信)

3.健壮性(随机点后退、进程切换、返回桌面、锁屏,上下左右滑动,下拉刷新等)

4.软件自动更新

5.内部通知提醒

6.会话有效期(自动登录,登录超时等)

7.移动端与PC端在某些字段控制的一致性(比如:登录、注册等)

8.安装、卸载

9.性能(耗电等)

 

 

Python学习笔记-基础

# 第一行代码
print('hello,python!')
print('你好')

# 变量学习
counter = 100 # 整型变量
miles = 1000.0 # 浮点型
name = "liu" # 字符型
int_test = -10 # 有符号整型
float_test = 32.3 # 浮点型
complex_test = 3.14j # 复数

print(counter)
print(miles)
print(name)
print(int_test)
print(float_test)
print(complex_test)

# 字符串学习
str = 'hello world!'

print(str)
print(str[0])
print(str[2:5])
print(str[2:])
print(str * 2)
print(str + "test")

# 列表学习
list = ['abcd',786,2.23,'liu',70.2]
tinylist = [123,'kai']

print(list)
print(list[0])
print(list[1:3])
print(list[2:])
print(tinylist * 2)
print(list + tinylist)

# 元组学习
tuple = ('abcd', 786, 2.23, 'kai', 70.2)
tinytuple = (123, 'jun')

print(tuple)
print(tuple[0])
print(tuple[1:3])
print(tuple[2:])
print(tinytuple * 2)
print(tuple + tinytuple)

# 元祖不允许更新
# tuple[2] = 1000  # 非法应用
list[2] = 1000  # 合法应用

# 字典学习  字典当中的元素是通过键来存取,而不是偏移-区别于了表
dict = {}
dict["one"] = "one"
dict[2] = "two"
tinydict = {'name': 'kai', 'code': 6743, 'dept': 'jun'}

print(dict['one'])
print(dict[2])
print(tinydict)
print(tinydict.keys())   # 输出所有键
print(tinydict.values())  # 输出所有值
print(dict.keys())
print(dict.values())

# 下一篇 运算符
# 成员运算符 in  包含 字符串,列表,元组
a = "测试"
str = "测试之道"
if (a in str):
    print("变量a在给定的字符串中")
else:
    print("变量a不在给定的字符串中")

b = "道"
if (b not in str):
    print("b不在给定的字符串")
else:
    print("B在给定的字符串中")

# 条件判断 同上  python不支持 switch 语句
name= "liu"
if name == "liukai":
    print("kai")
elif name == "liu":
    print("liu")
else:
    print("jun")
# 循环语句--while
count = 0
while (count < 9):
    count = count + 1
    if count == 3:
        continue
    elif count == 6:
        break
    else:
        print("the num is:", count)
print("end")

# 循环语句--for 可以遍历任何序列的项目
for lettter in 'python':
    print("当前字母:",lettter)
else:  # else会在 while 或者 for 循环正常执行完的情况下执行(即不是通过break中断的)
    print("字符串结束")

#通过遍历索引循环
fruits = ['banana', 'apple', 'mango']
for index in range(len(fruits)):
    print('当前水果:',fruits[index])
print("end")
# 格式化字符串输出
print("my name is %s and weight is %d kg!"%("liu",100))
# 三引号  所见即所得的输出方式(可以换行)  省略了某些特殊字符转义的麻烦
hi  = '''hi
    there'''
print( hi)