面试题:

1、一张类似支付宝的扫码支付页面(商家扫我的),问怎么进行功能测试

------我大致说了下 UI界面测试、扫面二维码/条形码跳转的页面、选择的支付方式、支付成功与否、支付金额等,不太全,网上也没有找到类似的答案,大家有建议的可以回复一下

2、针对第1题中的页面,用户反馈点击支付进入此页面经常出现白屏,反应慢,怎么进行性能测试

------这个不太会,只回答说可能是APP响应慢、手机卡顿,可以找对应的接口测试一下

3、针对第1题中的页面,需求规定可以同时支持1万人支付,实际只能支持1千人支付,怎么进行压力测试

------这个我是打算用jmeter工具,针对此付款接口进行压力测试,通过聚合报告/图形结果的数据,得出能支持的线程数(并发数),然后与开发、运维、产品等人员讨论进行性能优化

补充:进行压力测试时,测试环境的配置与生产环境的有差异,可以通过折算的方式,比如测试环境的配置只有1/5,那根据生产环境的活跃量、要求的TPS等,折算后到测试环境的并发数、TPS数据等,没有发生失败事务基本就算测试通过了

指标:并发数、平均响应时间(Average)、90%以下的时间(90%Line)、错误率(Error%)、TPS(Throughput)

备注:90%Line,是指90%的请求的响应时间都低于这个值

4、请设计一个高效算法,再给定的字符串数组中,找到包含"Coder"的字符串(不区分大小写),并将其作为一个新的数组返回。结果字符串的顺序按照"Coder"出现的次数递减排列,若两个串中"Coder"出现的次数相同,则保持他们在原数组中的位置关系。

给定一个字符串数组A和它的大小n,请返回结果数组。保证原数组大小小于等于300,其中每个串的长度小于等于200。同时保证一定存在包含coder的字符串。

测试样例:
["i am a coder","Coder Coder","Code"],3
返回:["Coder Coder","i am a coder"]
python 实现:

我分开写了两个函数,也可以合并在一个函数,而且可以简化,大家自己优化吧;另外最后一个要求每个串的长度小于等于200的没有实现

def find_code(a,t):
    '''
    :param a: 是给定的列表
    :param t: 是给定的子字符串
    :return:
    '''
    dict_b = {}
    for item in a:
        item = item.lower()  #因为不区分大小写,所以直接变成小写字母进行对比
        #print(item)
        if t in item:
            #print(item)
            m = item.count(t)   #item.count(t) 是查询t在item中出现的个数
            dict_b[m] = item
    print("包含code的元素:",dict_b)
    return dict_b

def paixu(b):
    '''
    :param b: 是个字典,并且key是数字
    :return:
    '''
    list_b =[]
    list_key=list(b)  #取字典中的key值组成列表
    print(list_key)
    for i in range(0,len(list_key)):   #key列表中进行排序
        for j in range(i,len(list_key)):
            if list_key[i] < list_key[j]:   #使用<就是从大到小排序,使用>就是从小到大排序
                temp = list_key[i]
                list_key[i] = list_key[j]
                list_key[j] = temp
    print(list_key)
    for k in list_key:   #key已经排好序了,直接把相应的values插入列表
        list_b.append(b[k])
    print(list_b)


if __name__ == '__main__':
    list_a = ["i am a coder","Coder Coder","Code"]
    t = "coder"
    dict_b = find_code(list_a,t)
    print()
    paixu(dict_b)